Как мне отредактировать текст поиска в vim? - PullRequest
3 голосов
/ 11 февраля 2011

Я некоторое время искал в Интернете, но не смог найти ответ.

Что я хочу сделать, это отредактировать ранее введенный текст поиска в vim.

Например, скажем, я просто искал "FooClass".Затем я хочу найти «FooMethod», но вместо того, чтобы вводить слово целиком с нуля, я бы хотел 5 раз вернуться на «пробел», чтобы удалить «Class», и просто ввести «Method» после «Foo».

Спасибо!

Ответы [ 2 ]

13 голосов
/ 11 февраля 2011

Нажмите / , затем Вверх , затем нажмите клавишу BackSpace пять раз. (Вероятно, предполагается, что nocp установлено).


Хватит читать сейчас, если вы не хотите изучать новые интересные трюки ...

Если вы хотите стать умным, вы также можете использовать Ctrl-R, чтобы перетащить объекты в поле поиска (например, наведите курсор на слово, нажмите / , затем нажмите и удерживайте Ctrl и нажмите R , затем W , и оно будет тянуть слово под курсором в строку поиска: аналогично нажатию *, но редактируемое и без границы слова).

Если вы хотите получить умение действительно , вы можете использовать все умные способности vimscript, чтобы установить @/ на то, что вы хотите найти, а затем нажмите n :

:let @/ = 'Foo' . 'Method'
n

Вероятно, больше, чем вы хотели знать, хотя ...

См:

:help 'nocp'
:help c_CTRL-R
:help c_CTRL-R_CTRL-W
:help *
:help quote/
:help :let-@
9 голосов
/ 11 февраля 2011

Я считаю, что редактирование истории лучше всего подходит для сложных поисков. Вы можете редактировать историю поиска с помощью q/. Просто отредактируйте строку, которую вы хотите использовать, и нажмите Enter, чтобы выполнить строку.

Существует также отличный vimcast по уточнению шаблонов поиска с использованием этой техники.

:h q/
...