Как переопределить / переопределить команду поиска Vim - PullRequest
0 голосов
/ 12 февраля 2019

Мне нужно переопределить / переопределить оператор поиска Vim "/", чтобы также выполнить "zszH" после поиска, чтобы центрировать результаты поиска на экране по горизонтали.

Например, я хочу ввести: / varcharи результаты поиска (т.е. строка "varchar") отображаются в середине экрана по горизонтали.

Теперь я могу сделать это, вручную вводя "zszH" после каждого поиска, но это очень утомительно.

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете использовать событие CmdlineLeave.Добавьте следующее к вашему vimrc

augroup RecenterSearch
  autocmd!
  autocmd CmdlineLeave [/?] call feedkeys('zszH', 't')
augroup END

Примечание: CmdlineLeave требуется Vim 8.1

Или вы можете отобразить <cr>:

cnoremap <expr> <cr> "\<cr>" . (getcmdtype() =~ '[?/]' ? "zszH" : '')

Некоторые сопоставлениячто может быть полезно:

nnoremap n nzszH
nnoremap N NzszH

Если у вас нет достаточно новой версии Vim, то, возможно, посмотрите 'wrap' или создайте отображение

Для получения дополнительной помощи см .:

:h CmdlineLeave
:h :autocmd
:h feedkeys()
:h expression-mapping
:h getcmdtype()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...