vim, ищите содержимое визуального блока в нескольких файлах, используя grep - PullRequest
1 голос
/ 19 сентября 2011

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

 map <F3> :execute "vimgrep /" . expand("<cword>") . "/j **" <Bar> cw<CR>

На моем .vimrc, поэтому я надел курсор на слово, нажал F3, и он ищет это слово в текущем каталоге и подкаталогах, я хотел бы изменить для содержимого текущего визуального блока и используйте вместо него grep, поскольку vimgrep слишком медленный, проблема в том, что grep не выводит в окно быстрого исправления.Есть идеи по поиску контента текущего визуального блока?Или перенаправить вывод команды grep в список быстрых исправлений?

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Vim имеет команду: grep, которая ведет себя как: vimgrep. Я думаю, что это должно дать вам то, что вы хотите:

map <F3> :execute "grep " . expand("<cword>") . " **" <Bar> cw<CR>

Кстати, видя ваш вариант использования (поиск слова под курсором), вы можете попробовать использовать файлы тегов (http://vim.wikia.com/wiki/Browsing_programs_with_tags).

0 голосов
/ 28 января 2014

Вы можете найти более дружественную версию сопоставления выше в этой сущности .Просто сохраните его в файл (скажем, ~ / vimscripts / fastgrep.vim)

Добавьте в свой .vimrc:

source ~/vimscripts/fastgrep.vim

, теперь вы можете:

highglight the word in vim and hit \g (i.e. <leader> g)

Вам будет предложено (в области приглашения vim):

Search for text: <highlighted_word_but_you_can_change_it>
Files to search: *.rb

Нажмите Enter, и вы увидите результаты в окне QuickResults, так что вы можете просто щелкнуть, чтобы перейти к этим строкам или использовать: cp: cnдля навигации по совпадениям.
Если вы хотите изменить * .rb на то, что вы чаще всего ищете, просто отредактируйте vimscript и поставьте его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...