Vi заменит искомую строку

Я знаю, как я могу искать и заменять строку либо глобально, либо в выбранной области.

Но у меня есть привычка перебирать слово, а затем ударить * чтобы найти это слово. Это не только поиск словарной строки, но и игнорирование других строк, для которых искомая строка является подстрокой. Таким образом, поиск выглядит как \<word\> вместо простого word .

Теперь я хотел бы иметь возможность ударить * по слову, а затем заменить все уже обнаруженные и подсвеченные вхождения этой строки, не вводя их снова для команды поиска и замены. Есть ли хороший способ сделать это?

2 Solutions collect form web for “Vi заменит искомую строку”

Образец текста:

 cat concatenate scat dog and cat 

Скажем * нажата в первой строке, он будет искать шаблон \<cat\>

Когда строка поиска остается пустой во время поиска и замены, она будет повторно использовать последний сопоставленный шаблон, поэтому

 :%s//CAT/g 

приведет к

 CAT concatenate scat dog and CAT 

От :h :substitute

Если {pattern} для подстановочной команды пуст, команда использует шаблон из последней замены или :global команды. Если их нет, но есть предыдущий шаблон поиска, этот используется. С флагом [r] команда использует шаблон из последней команды substitute :global или search.

Чтобы изменить поведение * и # для визуально выбранного текста для поиска только части текста вместо целого слова:

 vnoremap * y/<CR>"<CR> vnoremap # y?<CR>"<CR> 

Вы можете использовать g* вместо * . От :help gstar

 g* Like "*", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a whole word. {not in Vi} g# Like "#", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a whole word. {not in Vi} 

И затем используйте:

 :%s//replacement/g 

как предложил @Sundeep.

  • VIM: Какой самый быстрый способ вернуться из набора: w <enter> в режиме вставки?
  • «Нажмите ENTER или введите команду для продолжения»: почему я вижу это?
  • Как заставить vimchat работать в Linux
  • Vim запоминает настройки отредактированных файлов
  • Не удается выйти из Vim с помощью:! Q
  • Как написать команду в vim для запуска нескольких команд?
  • Могу ли я прыгать в прыжок по его номеру в vim?
  • Как работает эта команда vim: g / # / + 1t.`
  • Откройте другой файл с разделенными окнами и переключайтесь между ними
  • Как править или сдвигать блок текста по определенному числу столбцов?
  • Случайная цветная колонка?
  • Vim продолжает показывать сообщение об ошибке в цветовой схеме без каких-либо причин
  • Linux и Unix - лучшая ОС в мире.