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

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

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

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

  • VIM - изменить время ожидания комбинированных ключевых карт
  • создание vim fold также скрывает новую строку после функции
  • Могу ли я прыгать в прыжок по его номеру в vim?
  • Отображать символы замены для свободного места в Vim
  • как понять \ n в vim
  • vim, как запретить
  • Может ли он разрешить только дерганный контент отправляться в буфер обмена, а между тем удаленный контент не работает?
  • Является ли конвенция, что курсор «over» персонажа в нормальном режиме произвольный?
  • 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.

    Interesting Posts

    Редактирование внешнего объема Truecrypt Hidden Volume?

    Почему значение IFS удаляется из файла при расщеплении?

    Отображение наиболее точного времени

    Как заставить пользовательскую цветовую схему при использовании Inverted Colors в Evince?

    Ошибка каббала: невозможно выполнить скомпилированные программы

    tar -c сообщения об ошибках и исходные файлы?

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

    Как устранить эту проблему с дублирующимися источниками при установке новейшего Google Chrome Debian?

    iotop, но для конкретного диска?

    Aptitude хочет удалить тонны пакетов

    проверьте, если сценарий оболочки принимает аргумент командной строки перед запуском

    Как обновить систему Arch Linux после переопределения некоторых пакетов?

    Возможно ли запустить базовую Linux на файловую файловую систему без файловой системы (например, Fat32)

    Каковы некоторые рекомендации по использованию hdiutil (или других инструментов) для помощи в восстановлении файлов из образа dmg?

    Как указать вложение кодировки в командной строке mutt?

    Linux и Unix - лучшая ОС в мире.