2011-01-23 11 views
6

Esiste un comando vim per selezionare direttamente un blocco di testo che è stato appena incollato?vim: come selezionare il blocco incollato

ps. So di gv per riselezionare un blocco dopo aver chiuso la modalità visiva. Non si applica a questo caso.

+0

Hmm ... Mi chiedo se è possibile aggiungere un 'autocmd' per eseguire dopo aver incollato? –

risposta

11

Se si desidera selezionare solo dopo colla (prima di modificare qualsiasi altra cosa), utilizzare

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

. [ e ] contrassegna il punto di inizio e fine dell'ultima modifica, v: il registro è impostato sull'ultimo registro utilizzato (che è il registro utilizzato per il comando incolla a meno che, ad esempio, non annulli qualcosa), [0] seleziona solo il primo byte del registro tipo (è necessario perché per il registro a blocco restituisce <C-v>{width}) e il tipo di registro è un byte che equivale alla sequenza di tasti da utilizzare in modalità normale per richiamare la modalità visiva.

Ho visto questa soluzione da qualche parte su SO, si consiglia di cercarla per ottenere alcune alternative.

+0

Perfetto, grazie! –

+2

Credo che questa sia la discussione che stai cercando: http://stackoverflow.com/questions/4312664/is-there-a-vim-command-to-select-pasted-text –

+1

'getregtype ([{regname}]) 'Se {regname} non è specificato, viene usato' v: register'. Quindi anche 'getregtype() [0]' funziona. – kev

Problemi correlati