Есть ли команда vim для непосредственного выбора блока текста, который только что был вставлен?vim: как выбрать вставленный блок
пс. Я знаю о gv
, чтобы повторно выбрать блок после выхода из визуального режима. Это не относится к этому делу.
Есть ли команда vim для непосредственного выбора блока текста, который только что был вставлен?vim: как выбрать вставленный блок
пс. Я знаю о gv
, чтобы повторно выбрать блок после выхода из визуального режима. Это не относится к этому делу.
Если вы хотите, чтобы выбрать его как раз после того, как паста (прежде чем изменить что-либо еще), используйте
nnoremap <expr> gV "`[".getregtype(v:register)[0]."`]"
. [
и ]
отметки указывают на начало и конец последнего изменения, v: регистр установлен на последний использованный регистр (который является регистром, используемым для команды вставки, если вы, например, не держите что-то), [0]
выбирает только первый байт регистра type (требуется, потому что для блочного регистра он возвращает <C-v>{width}
), а тип регистра - один байт, который совпадает с нажатием клавиши, которую вы должны использовать в обычном режиме для вызова визуального режима.
Я видел это решение где-то на SO, вы можете его найти, чтобы получить некоторые альтернативы.
Отлично, спасибо! –
Я считаю, что это нить, которую вы ищете: http://stackoverflow.com/questions/4312664/is-there-a-vim-command-to-select-pasted-text –
'getregtype ([{regname}]]) 'Если {regname} не указан, используется' v: register'. Итак, 'getregtype() [0]' также работает. – kev
Хм ... Интересно, можете ли вы добавить 'autocmd' для запуска после вставки? –