Ответ 1
:grep
и co. будет заполнять буфер QuickFix, что позволяет быстро перемещаться между результатами.
С открытием многих буферов мне нужен простой способ поиска всех буферов для регулярного выражения и навигации по результату поиска (быстрый список?)
Я знаю, что могу :bufdo
команду, и ее легко найти и заменить с помощью %s
, но я не могу найти способ сделать простой поиск, а затем перейти к результатам.
Я нашел плагины для этого (например, buffergrep), но я буду удивлен, если эта простая задача не поддерживается с помощью трюка vim.. это?
:grep
и co. будет заполнять буфер QuickFix, что позволяет быстро перемещаться между результатами.
от :help grepadd
:grepa[dd][!] [arguments]
Just like ":grep", but instead of making a new list of
errors the matches are appended to the current list.
Example:
:call setqflist([])
:bufdo grepadd! something %
The first command makes a new error list which is
empty. The second command executes "grepadd" for each
listed buffer. Note the use of ! to avoid that
":grepadd" jumps to the first error, which is not
allowed with |:bufdo|.
An example that uses the argument list and avoids
errors for files without matches:
:silent argdo try
\ | grepadd! something %
\ | catch /E480:/
\ | endtry"
"Я нашел для этого плагины (например, buffergrep), но я буду удивлен, если эта простая задача не поддерживается с помощью трюка vim.. это?"
Не то, чтобы я знал. И существование нескольких плагинов, пытающихся предложить эту функциональность, как правило, подтверждает это.,.
Какие плагины вы пробовали и чего им не хватало?
http://www.vim.org/scripts/script.php?script_id=2545
http://www.vim.org/scripts/script.php?script_id=2255
Кроме того, чтобы убедиться, что вы знаете vimgrep, не так ли? Vimgrep - это внутренняя команда, которая загружает файлы в буферы и делает greps на буферах, с результатами в окне quickfix. Я не подтвердил, но я предполагаю, что поиск файла уже открыт в буфере, который Vimgrep не перезагружает, по крайней мере, если у него установлен флаг "nomodified". Если это так, одним из способов использования Vimgrep для быстрого и простого буферования grepping было бы просто создать список файлов для Vimgrep, используя вывод команды: buffers.