Подтвердить что ты не робот

Преобразование vim/поиск для поиска и замены без повторного набора регулярного выражения

Когда я выполняю поиск и заменю в Vim, мне нравится сначала использовать функцию поиска (/regex), чтобы визуально проверить мое регулярное выражение.

Есть ли простой способ вызвать выражение, которое я написал в команде поиска и замены, не набрав его снова?

Например, если я хотел найти слово выполнить и заменить его исполнением в приведенном выше тексте, выполните следующие действия:

/perform enter

Есть ли способ легко вставить perform в команду поиска и замены ниже?

:%s/perform/execute/g

4b9b3361

Ответ 1

Вы можете ввести

/search_term

а затем

:%s/<ctrl-r>// etc

где вы на самом деле нажимаете ctrl + r, а затем /, чтобы вставить поисковый запрос.

Ответ 2

Если вы выполнили предыдущий поиск, выполните следующие действия: /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/

Ответ 3

% s/blah/blahh/cg не поможет?

:%s/perform/execute/cg