¿Selección visual del cursor a la siguiente línea vacía?

11

¿Cómo se selecciona de la línea actual a la siguiente línea vacía?

Soy consciente de SHIFT+ Vpero luego tengo que saltar a la siguiente línea vacía o presionar la tecla hacia abajo varias veces. Sé cómo hacerlo bien cuando hay un personaje coincidente como un }pero no tengo idea de cómo hacerlo para una línea vacía.

leeand00
fuente

Respuestas:

19

Vim entiende el concepto de un "párrafo". La definición de Vim de un párrafo es un bloque de texto rodeado de líneas en blanco * . Hay varios movimientos y objetos de texto para trabajar con esto.

  • [count]}- Mover [count]párrafos hacia adelante. Puede usar <S-v>}para seleccionar todas las líneas desde la línea actual hasta la siguiente línea en blanco. Esto incluirá la línea en blanco, por lo que es posible que desee utilizar <S-v>}k.
  • [count]ip- Seleccionar [count]párrafos. Es como iw(palabra interna) excepto, bueno, párrafos. vipSin embargo, el uso seleccionará todo el párrafo, en lugar de desde la línea actual hasta el final del párrafo.
  • [count]ap- Me gusta ip, excepto que esto incluirá las líneas en blanco que rodean el párrafo.

Una advertencia aquí es que Vim no considera una línea con solo espacios en blanco como una "línea en blanco". Así que asegúrese de verificar esto (por ejemplo, con :set list) si no parece funcionar.


Recuerde también que siempre puede buscar el patrón que desee. Puede obtener una línea vacía con /^$; o si no desea seleccionar la línea vacía en sí, puede usar \n\npara colocar el cursor al final de la línea antes de la primera línea en blanco:

  • <S-v>/^$<CR>
  • <S-v>/\n\n<CR>

* Hay algunas excepciones, consulte :help paragraphla lógica completa. Pero para la mayoría de los propósitos, esta definición funciona bien.

Martin Tournoij
fuente
12

Un atajo para la siguiente línea vacía es }. Así que quizás quieras usar SHIFT+v}

marderh
fuente
1

Simplemente presionando Shift + }llevará a la siguiente línea vacía sin ninguna selección de texto.

Con Sift + v + }, vim selecciona el texto desde la posición actual del cursor hasta la siguiente línea vacía y debe presionar ESCpara salir del modo de selección

Junaid
fuente
¿Por qué Shift + }? Un simple }hace el movimiento. Ver otras respuestas.
Ralf
@Ralf Sift + }para invocar / ingresar el paréntesis a }menos que su teclado admita directamente la inserción }sin presionarShift
Junaid