2012-09-05 25 views
8

Intento guardar un texto seleccionado (parte de una línea) de Vim. Aquí está la línea:Guardar texto seleccionado (línea parcial) de Vim

ESTA PRUEBA DE CUERDAS - SELECTED_TARGET_WORLD

donde la negrita representa la selección de texto. Hago esto:

:'<,'> w! test/selected_text 

pero en el archivo selected_text que encontrar la cadena:

THIS TEST STRING - SELECTED_TARGET_WORLD 

¿Cómo puedo hacer que guardar sólo la parte seleccionada de la línea?

+0

posible duplicado del [En vim , ¿cómo escribir una línea parcial en un archivo?] (http://stackoverflow.com/questions/1953056/in-vim-how-to-write-a-partial-line-to-a-file) – Gilles

Respuesta

4

:[range]w filename solo funciona con líneas, por lo que ... debe colocar el texto seleccionado en su propia línea.

Una alternativa usando :help :redir:

:'<,'>"ay 
:redir filename 
:echo @a 
:redir END 
4

Ese caso no está documentado en la ayuda (:h :w) pero :w maneja rangos única línea (que habría visto que en un ejemplo de varias líneas).

Para hacer lo que quiera, primero deberá pegar su selección en un búfer temporal (o en su propia línea y luego colocarlo en su lugar) y luego guardar ese búfer. Eso puede automatizarse fácilmente si es algo que vas a hacer a menudo.

+6

Es documentado, pero está mezclado con la rica historia de vi: todos los comandos Ex solo funcionan en rangos de línea completa; la selección visual es una extensión de Vim, y por lo tanto algo en desacuerdo con el modelo subyacente. –

2

que hacerlo de esta manera, ARY ~

Una vez que haya seleccionado parcial de su contenido mediante el "modo visual", pulse Ctrl-C para provocar que

vmap <C-c> y:new ~/.vimbuf<CR>VGp:x<CR> 
Cuestiones relacionadas