Когда я работаю grep "keyword" -n
и получите следующий список результатов:
a/b/c:10: keyword
a/b/c:70: keyword
a/b/d:50: keyword
Как я могу открыться, один из файлов (скажите, что 2-е в списке), в строке он нашел?
Я теперь просто копирую вывод с помощью своей мыши и копирую его после vim
и затем добавьте +
с номером строки я копирую. (значение я пишу vim a/b/c +70
с помощью копии мыши, чтобы заставить имя файла и другую копию мыши получать номер строки [или я просто копирую его вручную, когда его достаточно короткое]),
Существует ли способ сделать это с сочетанием клавиш?
Две вещи:
Vim имеет некоторую поддержку grep
.
, Если Вы открываете Vim и делаете :grep keyword ...
, Vim заполняет список quickfix с результатами и переходит в первый файл. Можно затем перейти к запись n th quickfix с :cc n
(и другие команды).
можно заполнить вышеупомянутый список quickfix с помощью вывода grep:
vim -q <(grep -n keyword ...)
И затем используют quickfix упомянутые выше команды навигации.
Любой более прост, чем проигрывание вокруг с выводом grep вручную.
Как альтернатива (2), можно сохранить вывод grep в файл и использовать тот файл вместо этого, если Вы думаете, что не обязательно откроете Vim после:
grep ... | tee log
vim -q log
Вы могли сделать, так, если уже не было поддержки grep, как ответил @muru:
:cexpr system("grep -n keyword")
Это может использоваться с другой командой, git grep
, например.
кроме того, можно открыть вывод в буфере и использовать "cbuffer" на нем.
См. раздел quickfix из руководства об этом.