Vim: open files of the matches on the lines given by Grep?

前端 未结 8 1326
无人共我
无人共我 2021-02-02 16:46

I want to get automatically to the positions of the results in Vim after grepping, on command line. Is there such feature?

Files to open in Vim on the lines give

8条回答
  •  盖世英雄少女心
    2021-02-02 17:38

    If you pipe the output from grep into vim

    % grep -n checkWordInFile * | vim -
    

    you can put the cursor on the filename and hit gF to jump to the line in that file that's referenced by that line of grep output. ^WF will open it in a new window.

    From within vim you can do the same thing with

    :tabedit
    :r !grep -n checkWordInFile *
    

    which is equivalent to but less convenient than

    :lgrep checkWordInFile *
    :lopen
    

    which brings up the superfantastic quickfix window so you can conveniently browse through search results.

    You can alternatively get slower but in-some-ways-more-flexible results by using vim's native grep:

    :lvimgrep checkWordInFile *
    :lopen
    

    This one uses vim REs and paths (eg allowing **). It can take 2-4 times longer to run (maybe more), but you get to use fancy \(\)\@<=s and birds of a feather.

提交回复
热议问题