В Vim есть ли способ вставить текст в строку поиска?

StackOverflow https://stackoverflow.com/questions/101258

  •  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 чтобы скопировать это слово. Источник

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top