Как изменить слово в Vim (и во всех других его случаях) - PullRequest
0 голосов
/ 26 декабря 2018

Я часто использую комбинацию c-a-w, чтобы изменить слово в Vim.

Существуют ли аналогичные средства, с помощью которых можно также быстро изменить все другие вхождения указанного слова в конкретном файле?

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Используйте для этой цели опцию gn, в моем случае, у меня есть немного другая ее версия

" allows me to use a smarter cgn
nnoremap c* *<c-o>cgn
nnoremap c# #<C-o>cgn

Теперь, когда вам приходится много раз менять слово, если у вас неттак много, потому что в этом случае классическая замена будет лучше, просто нажмите c*, а затем нажмите «точка ->».чтобы изменить следующие его случаи.

Если вы хотите увидеть, как удивительная gn может дать нам взглянуть на: Работа с поиском совпадений с использованием gn (vimcasts)

0 голосов
/ 18 января 2019

Основная команда для замены всех вхождений - :substitute.К сожалению, будучи командой Ex, она не слишком хорошо интегрируется с заменой одного слова (например, caw) в обычном режиме: хотя вы можете вставить ранее замененное слово в командную строку с помощью <C-R>", вы все равнонеобходимо ввести его в \<...\>, чтобы обеспечить совпадение всего слова, а также экранировать любые специальные символы внутри слова.

Тем не менее, есть плагины, которые предлагают помощь в этой области.Одним из них является мой плагин ChangeGlobally , который предлагает gc{motion} альтернативу c{motion}, которая затем применяет изменение (или удаление) к другим совпадениям в той же строке или целом буфере.(На странице плагина есть ссылки на альтернативные плагины.)

0 голосов
/ 26 декабря 2018

Вы можете попробовать:

%s/<CTRL-R><CTRL-W>/NewWord/g

<CTRL-R><CTRL-W> означает, что удерживайте нажатой клавишу управления и нажмите R и W.Это копирует слово под курсором в командную строку.

См. :help c_CTRL-R_CTRL-W.

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