vim - ¿Cómo puedo seleccionar varias líneas que no están en una porción continua?
macvim tabular (3)
Ahora hay un complemento brillante que permite la selección múltiple en Vim: Vim-multiple-cursors :
Estoy intentando seleccionar varias líneas que no están en una parte continua. Por ejemplo, quiero seleccionar las líneas 1 y 3 simultáneamente sin seleccionar la línea 2:
1. this is line 1
2. this is line 2
3. this is line 3
Inicialmente, pensé que esto sería una tarea trivial, pero después de pasar bastante tiempo buscando en Google sin éxito, me di cuenta de que podría no ser una tarea simple o común.
Muchas gracias de antemano por su ayuda.
Edit: Gracias por las respuestas. Daré un poco más de detalles sobre cómo se me ocurrió la pregunta.
Estaba tratando de alinear un código de fragmento como el siguiente, usando Tabularize:
1. name1="Woof"
2. lucky_dog = lucky( "dog_one"= name1,
3. "dog_two"= name1 )
4. name2="Howl"
Quería que se alinee así:
1. name1 = "Woof"
2. lucky_dog = lucky( "dog_one"= name1,
3. "dog_two"= name1 )
4. name2 = "Howl"
Pero no puedo hacerlo porque Tabularize tomará la tercera línea en consideración y alineará todo en:
1.name1 = "Woof"
2.lucky_dog = lucky( "dog_one"= name1,
3. "dog_two" = name1 )
4.name2 = "Howl"
Creo que podría pensar en algún truco de expresiones regulares para archivar los resultados deseados, al principio solo se me ocurrió que tal vez podría simplemente seleccionar la línea 1,2,4 y hacer que se alineen.
Entonces me di cuenta de que esto no es una tarea fácil.
De ahí la pregunta.
Gracias por las respuestas!
No es posible seleccionar diferentes trozos de texto en vim.
Lo que puede hacer en su lugar es identificar un patrón común y único que sea compartido por las líneas en las que desea actuar y usar el ex-comando ''global'' o ''g'' para hacerlo así:
:g/shared unique pattern/ex or normal command here
Por ejemplo, para copiar las líneas en un registro, diga el registro ''a'':
:g/shared unique pattern/normal "Ayy
Para pegarlos pulsa "ap
El capital A que viene antes de yy le dice a vim que desea copiar y anexar las líneas al registro.
Como dijo Sydill, si puede decirnos qué desea hacer exactamente con las líneas, entonces podemos ayudarlo mejor.
Este script parece proporcionar la funcionalidad que estás buscando.