Я склонен использовать *
и #
(как предложено Брайаном Агнью), но если вам нужен метод, который предполагает ввод
?word<CR>
Вы могли бы сделать что-то вроде этого:
function! SearchWord(word)
let @/ = '\<' . a:word . '\>'
normal n
endfunction
command! -nargs=1 SearchWord call SearchWord(<f-args>)
nmap ? :SearchWord
Обратите внимание, что после SearchWord
в последней строке есть пробел.
Пояснение:
При сопоставлении ?
откроется командная строка и введите SearchWord
(включая пробел). Команда заставляет SearchWord myword
сделать эквивалент call SearchWord('myword')
(т.е. она помещает кавычки вокруг аргумента, чтобы превратить его в строку). Функция устанавливает регистр поиска @/
равным вашему слову, окруженному \<
и \>
, а затем выполняет обычный режим n
, чтобы найти следующий экземпляр содержимого регистра поиска.
Конечно, если вы сделаете это, вы потеряете преимущества инкрементального поиска, но, надеюсь, в любом случае это будет полезно.