如何将grep-l的文件名结果定向到vim编辑器

如何将grep-l的文件名结果定向到vim编辑器,vim,grep,Vim,Grep,我想将grep-l命令的结果直接发送到vim编辑器 例如 如何发出此命令,并在vim中打开foo文件 grep -l urls *.txt | xargs vim xarg将标准输入转换为命令的参数。 这将打开vim,其中文件名以.txt结尾,并包含字符串“URL”: grep -l urls *.txt | vim - 您必须将程序的输出作为参数传递给vim,而不是作为输入: vim $(grep -l urls *.txt) 也可以使用Duikboot提到的xargs grep -l

我想将grep-l命令的结果直接发送到vim编辑器

例如

如何发出此命令,并在vim中打开foo文件

grep -l urls *.txt | xargs vim
xarg将标准输入转换为命令的参数。

这将打开vim,其中文件名以
.txt
结尾,并包含字符串“URL”:

grep -l urls *.txt | vim -

您必须将程序的输出作为参数传递给vim,而不是作为输入:

vim $(grep -l urls *.txt)
也可以使用Duikboot提到的xargs

grep -l urls *.txt | xargs vim

您可以组合使用
:help:args
和命令替换:

$ vim +ar\ $(grep -l urls *.txt)
使用
要重用最新命令,请执行以下操作:

$ vim +ar\ $(!!)

在vim中,您可以将任何外部命令的输出重定向到当前缓冲区

试试这个

:r!grep -l urls *.txt

看一看
:h:vimgrep
这可能就是您要找的。谢谢Juan和Duikboot。出于某种原因,xargs方法不能很好地与gitbash配合使用。然而,Juan,您上面的第一个解决方案非常有效。多亏了这两个!
:r!grep -l urls *.txt