Добавить слово под курсором в шаблон поиска - PullRequest
17 голосов
/ 13 февраля 2012

Используя *, когда курсор находится на слове theWord, vim напрямую переходит к следующему появлению именно этого слова, то есть выполняет /\<theWord\>.

Вопросы:

Есть ли способ добавить другое слово otherWord к поиску, когда курсор находится на этом другом слове, так, что он выполняет /\<theWord\>\|\<otherWord\>?

Ответы [ 2 ]

14 голосов
/ 13 февраля 2012

Попробуйте что-то вроде:

  1. * (для поиска слова)
  2. переехать куда-нибудь еще
  3. :let @/=@/.'\|\<'.expand("<cword>").'\>' это добавляет к предыдущему шаблону поиска текущее слово под курсором) с некоторыми разделителями (\| и границами слова ...)
  4. если хотите, установите для него горячую клавишу, например: nnoremap <F4> :let @/.='\\|\<'.expand("<cword>").'\>'<CR>
6 голосов
/ 13 февраля 2012

Попробуйте

:nnoremap <silent> + :let @/ .= '\\|\<'.expand('<cword>').'\>'<cr>n

Это добавит слово под курсором в регистр поиска, когда будет нажата '+', и перейдет к появлению * n * ext любого поискаpattern.

Если вы хотите расширить его до визуального режима (как это может быть сделано для n_star ), у вас есть

:vnoremap <silent> + <c-\><c-n>:let @/ .= '\\|'.escape(lh#visual#selection(), '/\^$*.[~')<cr>n

с lh#visual#selection() для получения текущего выбора и escape() для нейтрализации некоторых активных символов в регулярных выражениях.v_CTRL-\_CTRL-N является безопасной и тихой последовательностью побега.

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