В Vim есть способ вставить текст в строку поиска?
Я хочу найти $maximumTotalAllowedAfterFinish
и заменить его на $minimumTotalAllowedAfterFinish
. Вместо ввода длинного текста:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Есть ли способ скопировать эти длинные имена переменных в строку поиска, так как в командной строке я не могу ввести "p
" для вставки?
Ответы
Ответ 1
Вы можете вставить содержимое пронумерованного или названного регистра, набрав CTRL R {0-9a-z"%#:-=.}
. Набрав CTRL-R CTRL-W, вы можете вставить текущее слово под курсором. См:
:he cmdline-editing
для получения дополнительной информации.
Ответ 2
Скопируйте его как обычно, затем Ctrl R " для вставки. Существует множество других Ctrl R ярлыков (например, калькулятор, текущее имя файла, содержимое буфера обмена). Введите :help c_<C-R>
, чтобы просмотреть полный список.
Ответ 3
Введите q:
, чтобы перейти в режим редактирования истории в новом буфере. Затем отредактируйте последнюю строку буфера и нажмите Enter
, чтобы выполнить ее.
Ответ 4
Или создайте команду в буфере vim, например. введите его в буфер:
s/foo/bar/gci
И скопируйте его в именованный регистр с помощью "ayy
(если курсор находится на этой строке!).
Теперь вы можете выполнить содержимое регистра "a
" из командной строки Vim Ex с помощью:
:[OPTIONAL_RANGE]@a
Я использую его все время.
Ответ 5
Как правило, вы будете делать это с помощью мыши, выбрав (возможно, Ctrl Ins или Ctrl C после выбора), а затем, когда в строке команды/поиска нажмите среднюю кнопку (или Shift Ins или Ctrl V).
Другой способ: написать строку команд/поиска в текстовом буфере со всем редактированием, доступным в текстовых буферах, начиная с :
и всех, а затем в строке:
"[email protected]
который сохранит всю командную строку в буфере a
, а затем выполнит ее. Однако он не будет сохранен в истории команд.
Попробуйте создать следующую строку в текстовом буфере в качестве примера нажатия клавиш выше:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Наконец, вы можете ввести q:
, чтобы ввести редактирование истории в текстовом буфере.
Ответ 6
Copy:
1) v
(или выделите мышью в визуальном режиме)
2) y
(yank)
Paste:
1) /
(режим поиска)
2) Ctrl + R + 0
(вставить из yanked register)