2011-01-23 2 views
6

Есть ли команда vim для непосредственного выбора блока текста, который только что был вставлен?vim: как выбрать вставленный блок

пс. Я знаю о gv, чтобы повторно выбрать блок после выхода из визуального режима. Это не относится к этому делу.

+0

Хм ... Интересно, можете ли вы добавить 'autocmd' для запуска после вставки? –

ответ

11

Если вы хотите, чтобы выбрать его как раз после того, как паста (прежде чем изменить что-либо еще), используйте

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

. [ и ] отметки указывают на начало и конец последнего изменения, v: регистр установлен на последний использованный регистр (который является регистром, используемым для команды вставки, если вы, например, не держите что-то), [0] выбирает только первый байт регистра type (требуется, потому что для блочного регистра он возвращает <C-v>{width}), а тип регистра - один байт, который совпадает с нажатием клавиши, которую вы должны использовать в обычном режиме для вызова визуального режима.

Я видел это решение где-то на SO, вы можете его найти, чтобы получить некоторые альтернативы.

+0

Отлично, спасибо! –

+2

Я считаю, что это нить, которую вы ищете: http://stackoverflow.com/questions/4312664/is-there-a-vim-command-to-select-pasted-text –

+1

'getregtype ([{regname}]]) 'Если {regname} не указан, используется' v: register'. Итак, 'getregtype() [0]' также работает. – kev

Смежные вопросы