vim: как выбрать вставленный блок - PullRequest
8 голосов
/ 23 января 2011

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

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

Ответы [ 3 ]

13 голосов
/ 23 января 2011

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

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

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

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

1 голос
/ 09 ноября 2018

В моем случае у меня есть эта карта:

:nnoremap gp `[v`]
0 голосов
/ 28 марта 2018

В моем vimrc навсегда были следующие карты:

nnoremap <leader>p `[V`]
nnoremap <leader>[ `[V`]<
nnoremap <leader>] `[V`]>

Они делают следующее:

  • визуально выбрать недавно вставленный блок
  • деиндентировать недавно вставленный блок
  • отступ для недавно вставленного блока

Я, вероятно, использую отступы даже больше, чем выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...