Если вы не против нажать комбинацию, отличную от 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и..