He estado usando vim durante bastante tiempo y soy consciente de que seleccionar bloques de texto en modo visual es tan simple como SHIFT+ Vy mover la tecla de flecha hacia arriba o hacia abajo línea por línea hasta llegar al final del bloque de texto que quiere seleccionado.
Mi pregunta es: ¿hay una forma más rápida en modo visual de seleccionar un bloque de texto, por ejemplo, con SHIFT+ Vseguido de especificar el número de línea en el que quiero que se detenga la selección? (a través de, :35
por ejemplo, donde 35 es el número de línea que quiero seleccionar, esto obviamente no funciona, así que mi pregunta es averiguar cómo se puede hacer algo similar a esto ...)
v%
ov/pattern
o alguna otra cosa?V35G
seleccionará visualmente de la línea actual a la línea 35, tambiénV10j
oV10k
seleccionará visualmente las 10 líneas siguientes o anterioresnnoremap <Space> V
. Cuando esté en modo de línea visual, simplemente haga clic con el botón derecho del mouse para definir la selección (al menos en Linux es así). De todos modos, más efectivo que solo con teclado.Respuestas:
Además de lo que otros han dicho, también puede ampliar su selección mediante búsquedas de patrones.
Por ejemplo, v/fooseleccionará desde su posición actual hasta la próxima instancia de "foo". Si realmente desea expandirse a la siguiente instancia de "foo", en la línea 35, por ejemplo, simplemente presione npara expandir la selección a la siguiente instancia, y así sucesivamente.
actualizar
No lo hago a menudo, pero sé que algunas personas usan marcas extensivamente para hacer selecciones visuales. Por ejemplo, si estoy en la línea 5 y quiero seleccionar la línea 35, podría presionar mapara colocar la marca
a
en la línea 5, luego :35moverme a la línea 35. Shift+ vpara ingresar al modo visual en línea y, finalmente, `avolver a seleccionar para marcara
.fuente
v/foo/e
. Lose
significa "fin" del patrón coincidente.v
i
w
. Si desea seleccionar el espacio no en blanco contiguo actual, usev
i
Shift
+w
. La diferencia sería cuando el cursor está aquíMyCla|ss.Method
, el primer combo seleccionaríaMyClass
y el segundo seleccionaría todo.v i w s
permite realizar efectivamente una operación de "reemplazo".V35G logra lo que quieres
fuente
Vim es un lenguaje. Para entender realmente a Vim, debes conocer el idioma. Muchos comandos son verbos, y vim también tiene objetos y preposiciones.
Esto significa "seleccionar la línea actual hasta la línea 100 incluida".
Los objetos de texto son donde está gran parte del poder. Introducen más objetos con preposiciones.
Esto significa "seleccionar alrededor del párrafo actual", es decir, seleccionar el párrafo actual y la línea en blanco que lo sigue.
Esto significa "seleccionar alrededor del párrafo actual y el siguiente párrafo".
Esto significa "ir al final del párrafo actual y luego seleccionarlo visualmente y el párrafo anterior".
Entender Vim como un idioma lo ayudará a obtener el mejor rendimiento.
Después de seleccionar hacia abajo, puede combinar con otros comandos:
Con el comando anterior, puede seleccionar alrededor de un párrafo y eliminarlo. Cambie
d
ay
para copiar oc
para cambiar op
para pegar.Una vez que comprenda cómo funcionan todos estos comandos juntos, eventualmente no necesitará seleccionar nada visualmente. En lugar de seleccionar visualmente y luego eliminar un párrafo, puede eliminar el párrafo con el
dap
comando.fuente
v35G
seleccionará todo, desde el cursor hasta la línea 35.v
lo pone en modo de selección,35
especifica el número de línea al que deseaG
ir.También puede usar
v}
cual seleccionará todo hasta el comienzo del siguiente párrafo.fuente
Para seleccionar el número de líneas:
shift + v 9j - selecciona 10 líneas
fuente
:set rnu
Shift+V n j
oShift+V n k
Esto selecciona la línea actual y las
n
líneas siguiente / anterior . Me resulta muy útil.fuente
v 35 j
texto agregado para un mínimo de 30 caracteres
fuente
v%
seleccionará todo el bloque.
Juega también con:
v}
,vp
,vs
, Etc.Ver ayuda:
:help text-objects
que enumera las diferentes formas de seleccionar letras, palabras, oraciones, párrafos, bloques, etc.
fuente
Objetos de texto: http://vim.wikia.com/wiki/Creating_new_text_objects
http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects
fuente
Puede presionar
vi}
para seleccionar el bloque rodeado de{}
corchetes donde se encuentra actualmente el cursor.Realmente no importa dónde se encuentre dentro de ese bloque (solo asegúrese de estar en el más externo). También puede cambiar
{
a cualquier cosa que tenga un par como)
o]
.fuente
Siempre puede usar números antecedentes para repetir acciones:
fuente
simple solo presione Shift v line number gg
ejemplo: su línea actual a la línea 41 Simplemente presione Shift v 41 gg
fuente
} significa mover el cursor al siguiente párrafo. entonces, use
v}
para seleccionar el párrafo completo.fuente
Para seleccionar todo en visual: escriba Esc para asegurarse de que está en modo normal
escriba ENTER para ir al comienzo del archivo
fuente
gg
en modo normal para ir a la primera línea también.Podría ser útil saber:
Para seleccionar la misma cantidad de líneas, por ejemplo, use
1v
Debe haber realizado alguna modificación para poder usar1v
, en bloque o en línea.Hoy vi este increíble consejo desde aquí :
También puede restablecer los límites del bloque visual al hacerlo:
fuente
Lo uso con pliegue en modo sangría:
v abrir el modo Visual en cualquier parte del bloque
zaza tooglelo dos veces
fuente