Учитывая результат grep-n, как я могу открыть энергию в той определенной строке? (использование только клавиатуры)

Когда я работаю 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 с помощью копии мыши, чтобы заставить имя файла и другую копию мыши получать номер строки [или я просто копирую его вручную, когда его достаточно короткое]),

Существует ли способ сделать это с сочетанием клавиш?

9
задан 11 December 2018 в 07:07

2 ответа

Две вещи:

  1. Vim имеет некоторую поддержку grep.

    , Если Вы открываете Vim и делаете :grep keyword ... , Vim заполняет список quickfix с результатами и переходит в первый файл. Можно затем перейти к запись n th quickfix с :cc n (и другие команды).

  2. можно заполнить вышеупомянутый список quickfix с помощью вывода grep:

    vim -q <(grep -n keyword ...)
    

    И затем используют quickfix упомянутые выше команды навигации.

Любой более прост, чем проигрывание вокруг с выводом grep вручную.

Как альтернатива (2), можно сохранить вывод grep в файл и использовать тот файл вместо этого, если Вы думаете, что не обязательно откроете Vim после:

grep ... | tee log
vim -q log
13
ответ дан 23 November 2019 в 04:53

Вы могли сделать, так, если уже не было поддержки grep, как ответил @muru:

:cexpr system("grep -n keyword")

Это может использоваться с другой командой, git grep, например.

кроме того, можно открыть вывод в буфере и использовать "cbuffer" на нем.

См. раздел quickfix из руководства об этом.

2
ответ дан 23 November 2019 в 04:53

Другие вопросы по тегам:

Похожие вопросы: