Нет опции, которую вы можете включить или выключить, чтобы определить, к сожалению, должен быть поиск вперед или назад. Таким образом, самый простой способ - это выполнить поиск с помощью /
или ?
.
. В вашем случае:
vnoremap <silent> * <c-\><c-n>:let @/ = escape(GetVisualSelection(), '/\^$*.[~')<CR>/<CR>
vnoremap <silent> # <c-\><c-n>:let @/ = escape(GetVisualSelection(), '/\^$*.[~')<CR>?<CR>
Поиск без аргументов просто повторяет последний шаблон (см. :help ?<CR>
)
Хотя я чувствую, что определение функции для этой цели немного излишне, вот что я имею в своем vimr c:
vnoremap * y:let @/ = escape("<C-r>0", "/\^$*.[~")<CR>/<CR>
vnoremap # y:let @/ = escape("<C-r>0", "/\^$*.[~")<CR>?<CR>
Здесь я копирую выделение установите регистр @/
для скопированного текста и выполните поиск таким же образом, как я показал выше. <C-r>
позволяет пропустить содержимое регистра (см. :help <C-r>
)