Ответ 1
Вы можете ввести
/search_term
а затем
:%s/<ctrl-r>// etc
где вы на самом деле нажимаете ctrl + r, а затем /, чтобы вставить поисковый запрос.
Когда я выполняю поиск и заменю в Vim, мне нравится сначала использовать функцию поиска (/regex
), чтобы визуально проверить мое регулярное выражение.
Есть ли простой способ вызвать выражение, которое я написал в команде поиска и замены, не набрав его снова?
Например, если я хотел найти слово выполнить и заменить его исполнением в приведенном выше тексте, выполните следующие действия:
/perform
enter
Есть ли способ легко вставить perform
в команду поиска и замены ниже?
:%s/perform/execute/g
Вы можете ввести
/search_term
а затем
:%s/<ctrl-r>// etc
где вы на самом деле нажимаете ctrl + r, а затем /, чтобы вставить поисковый запрос.
Если вы выполнили предыдущий поиск, выполните следующие действия:
/foo
Вы можете просто ввести:
:%s//bar/g
и он заменит каждое вхождение foo
на bar
, потому что Vim понимает, что вы хотите заменить свой предыдущий поиск. Вам не нужно повторно указывать foo
.
В более общем плане для повторного использования команды из истории вы можете использовать команду q:
, чтобы вызвать историю команд и q/
, чтобы открыть историю поиска в небольшом буфере. Когда вы там, вы можете использовать каждую команду Vim для вставки, вырезания, вызова предыдущей команды, нажав <Enter>
...
Здесь можно найти отличный ресурс для вашей темы, это веб-трансляция о regexp и о том, как их усовершенствовать, используя окно командной строки.
http://vimcasts.org/episodes/refining-search-patterns-with-the-command-line-window/
% s/blah/blahh/cg не поможет?
:%s/perform/execute/cg