¿Cómo selecciono visualmente el bloque de texto que acabo de pegar en Vim?

13

Por lo general, necesito mover / copiar fragmentos de código entre mis archivos fuente. Después de pegar un bloque de texto, generalmente necesito aplicar alguna operación a ese bloque, como volver a aplicarles una nueva sangría =.

¿Hay alguna manera de seleccionar fácilmente visualmente el bloque de texto que acabo de pegar sin hacerlo manualmente?

thameera
fuente

Respuestas:

21

Las marcas '[y ']delimitan la primera y la última línea del texto previamente modificado o eliminado. Las contrapartes `[y `]delimitan las respectivas líneas y columnas.

Con eso, puede seleccionar visualmente el último bloque de líneas modificado '[V']y luego aplicar el =comando.

Sin embargo, dado que una pasta deja el cursor en la primera línea del contenido que se pegó, también puede especificar un movimiento sobre el que se =debe aplicar el comando, en este caso a la ']marca. Esto sería ='].

jamessan
fuente
Esta respuesta describe un método que funciona para todos los tipos de selecciones visuales (incluida la visual en bloque): stackoverflow.com/questions/4312664/…
Adam Byrtek
14

Esta asignación le permite volver a seleccionar el texto que acaba de pegar:

nnoremap gV `[v`]

Pero deberías haber usado [py en su ]plugar.

Ver :help [p.

romainl
fuente
2
+1 para [py]p
lisowski.r
3

Vim incluye las siguientes asignaciones útiles:

`[

y

`]

Que seleccionan el primer y el último carácter del texto previamente modificado, respectivamente.

La siguiente serie de teclas (en modo normal) seleccionará el último texto pegado:

`[v`]

Para un acceso más rápido, puede configurar una asignación, por ejemplo :

nnoremap gp `[v`]
asfallows
fuente