如何在gvim中拆分打开包含TODO的所有文件?

Dim*_*hev 2 vim

我想在gvim中的分割缓冲区中打开我的所有源文件,其中包含TODO.

我很确定这可以通过grep将输出传递给edit命令来完成,但我不确定如何实现它.

sid*_*yll 7

我不会在分裂中打开它们,除非你知道只有两三个.但是如果只有两三个文件需要编辑,为什么你要找一个自动打开它们的命令呢?

这是你可以使用的基本grep:

grep -lIr TODO .
Run Code Online (Sandbox Code Playgroud)

它以递归方式搜索当前目录,查找包含TODO并列出它们的文件 .它还避免匹配二进制文件(包括.swp和.swo文件).然后,如果您正在运行GUI Vim,我会选择:

mvim --remote-silent $(grep -lIr TODO .)
Run Code Online (Sandbox Code Playgroud)

或者,在Vim中,您可以使用:argadd 命令和反引号扩展,如评论中的sehe巧妙建议:

:args `grep -Ilr TODO .`
Run Code Online (Sandbox Code Playgroud)


Ben*_*enj 6

实际上vim中有一个功能可能比你实际要求的更好.退房:help quickfix.基本上你可以按照你的想象执行你的grep:

grep -rn TODO . > index.txt

然后你可以在vim的快速列表中打开这个索引:

vim -q index.txt

这将允许您通过执行:cn(下一个)和:cp(上一个)来浏览所有这些文件中的每个TODO .也可以:copen在底部打开快速列表窗口,显示您在整个列表中的位置,并允许您导航到任何文件中的每个TODO.


kev*_*kev 5

你可以使用xargs:

grep -l TODO * | xargs vim -o
Run Code Online (Sandbox Code Playgroud)