В Vim есть ли способ вставить текст в строку поиска?
-
01-07-2019 - |
Вопрос
Я хочу найти $maximumTotalAllowedAfterFinish
и замените его на $minimumTotalAllowedAfterFinish
.Вместо того, чтобы набирать длинный текст:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Есть ли способ СКОПИРОВАТЬ эти длинные имена переменных в строку поиска, поскольку в командной строке я не могу ввести "p
- чтобы вставить?
Решение
Вы можете вставить содержимое пронумерованного или именованного регистра, набрав CTRLR {0-9a-z"%#:-=.}
.Набрав CTRL-R CTRL-W вы можете вставить текущее слово под курсор.Видишь:
:he cmdline-editing
для получения дополнительной информации.
Другие советы
Скопируйте его как обычно, затем выполните CtrlR" вставить.Есть много других CtrlR ярлыки (например, калькулятор, текущее имя файла, содержимое буфера обмена).Тип :help c_<C-R>
чтобы просмотреть полный список.
Тип q:
чтобы перейти в режим редактирования истории в новом буфере.Затем отредактируйте последнюю строку буфера и нажмите Enter
чтобы выполнить это.
Копировать:
1) v
(или выделите с помощью мыши в визуальном режиме)
2) y
(дергает)
Паста:
1) /
(режим поиска)
2) Ctrl + R + 0
(вставить из выдернутого регистра)
Или создайте команду в буфере vim , напримервведите его в буфер:
s/foo/bar/gci
И скопируйте его в именованный регистр с "ayy
(если курсор находится на этой строке!).
Теперь вы можете выполнить содержимое "a
" зарегистрируйтесь из командной строки Vim Ex с помощью:
:[OPTIONAL_RANGE]@a
Я пользуюсь им постоянно.
Как правило, вы делаете это с помощью мыши (возможно CtrlIns или CtrlC после выбора), а затем, находясь в командной строке/ поиске, щелкните средним щелчком мыши (или СдвигIns или CtrlV).
Другой способ - записать вашу командную / поисковую строку в текстовый буфер со всем редактированием, доступным в текстовых буферах, начиная с :
и все, кто тогда на кону, делают:
"add@a
который сохранит всю командную строку в буфере a
, а затем выполните его.Однако он не будет сохранен в истории команд.
Попробуйте создать следующую строку в текстовом буфере в качестве примера для приведенных выше нажатий клавиш:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Наконец, вы можете войти q:
для ввода истории редактирования в текстовый буфер.
Вы можете навести курсор на слово, которое хотите добавить в свой шаблон, а затем нажать / или : чтобы перейти либо в режим поиска, либо в командный режим, а затем нажмите CtrlRCtrlW чтобы скопировать это слово. Источник