2011-01-23 18 views
6

¿Hay un comando vim para seleccionar directamente un bloque de texto que acaba de pegarse?vim: cómo seleccionar el bloque pegado

ps. Sé acerca de gv para volver a seleccionar un bloque después de salir del modo visual. No se aplica a este caso.

+0

Hmm ... Me pregunto si podría agregar un 'autocmd' para ejecutar después de pegar? –

Respuesta

11

Si desea seleccionar sólo después de pegar (antes de cambiar cualquier otra cosa), utilice

nnoremap <expr> gV "`[".getregtype(v:register)[0]."`]" 

. [ y ] marcas señalan el inicio y el final del último cambio, v: el registro se establece en el último registro utilizado (que es el registro utilizado para el comando pegar a menos que, por ejemplo, tire de algo), [0] selecciona solo el primer byte de registro tipo (es necesario porque para el registro en bloque devuelve <C-v>{width}) y el tipo de registro es un byte que es exactamente lo mismo que la pulsación de tecla que debe usar en el modo normal para invocar el modo visual.

Vi esta solución en alguna parte de SO, es posible que desee buscarla para obtener algunas alternativas.

+0

Perfecto, gracias! –

+2

Creo que este es el hilo que está buscando: http://stackoverflow.com/questions/4312664/is-there-a-vim-command-to-select-pasted-text –

+1

'getregtype ([{regname}]) 'Si no se especifica {regname}, se usa' v: register'. Entonces, 'getregtype() [0]' también funciona. – kev

Cuestiones relacionadas