Если вы не против нажать комбинацию, отличную от cw
, то, я думаю, вы можете легко получить то, что хотите, определив ярлык. Что вы можете сделать, это разместить следующее
nmap <leader>a "1yiw:let @/=@1^Mciw
в вашем .vimrc
файле. Обратите внимание, что ^M
это захват ключа возврата, а не символы ^
и M
. Вы получите это, нажав Ctrl+ Vв режиме вставки, а затем Enter. Теперь, с этим определением, нажатие <leader>a
будет выполнять то же самое cw
, но теперь слово (до изменения) будет в вашем «последнем регистре поиска» (то есть в /
регистре), поэтому нажатие nпосле того, как вы внесли изменение и вернули в нормальном режиме приведет вас к следующему появлению. Аналогично, нажатие Nвернет вас к предыдущему событию.
Ярлык Конечно, вы можете выбрать другой ярлык, чем другой <leader>a
, но я просто нахожу, что это очень доступный ярлык. Лично я поставил , <leader>
чтобы ,
так , что мне просто нужно нажимать ,следует a, но это потому , что я не использую американскую клавиатуру, так что мой \спрятано несколько (я считаю , \по умолчанию <leader>
).
Пояснение Идея действительно проста. Наберите слово под курсором в регистр поиска /
и затем выполните cw
. Это nmap <leader>a "/yciw
было то, к чему я стремился, но, к сожалению, я не думаю, что вы можете восстановить регистр поиска, поэтому обходной путь состоит в том, чтобы вернуть слово под курсором в 1
регистр, затем установить /
регистр равным этому и затем сделать cw
. Так "1yiw
же и та часть, которая возвращает внутреннее слово под курсором в регистр 1
. Если вы не знаете о внутренних словах, вы можете проверить :help iw
. После этого :let @/=@1
следует захват Enterсодержимого 1
регистра в /
. На данный момент nиNработает как следующее и предыдущее вхождение слова под курсором, а затем ciw
делается так, что слово под курсором удаляется и Vim переводится в режим вставки.
Слово против внутреннего слова Я только что понял, что я предполагал, что вы хотите, чтобы все слово находилось под курсором, а не только с точки зрения курсора и так далее. Вот почему я использовал iw
вместо w
везде. Если это не так, то вы должны использовать
nmap <leader>a "1yw:let @/=@1^Mcw
вместо. Если курсор находится на первой букве слова, разницы нет.
отказ от ответственности Это решение, вероятно , не очень хорошо работает , если вы пытаетесь использовать его на то , что содержит вещи , отличные от букв, например, имея курсор стоять на \
или путем замены iw
на iW
, ib
, is
или ip
или что - то (хотя я не знаю , почему вы бы хочу эту функцию с целыми предложениями)
*
поиск. Особенно это заставляет*
визуально выбирать текущее слово без перемещения курсора. После того, как оно установлено, вы можете*ciw
внести старое слово в регистр поиска и изменить его. Тогда вы можете использоватьn
и.
.