在vim中,如何设置;args";结果是;grep-l“吗;?

在vim中,如何设置;args";结果是;grep-l“吗;?,vim,command-line,grep,vi,Vim,Command Line,Grep,Vi,为了进行说明,以下是如何从命令行执行此操作: vim `grep "hello" * -Rl` 这将打开vim,其中包含所有包含“hello”的文件(-l仅给出文件名)。我想做同样的事情,但在vim内部。从概念上讲,类似这样的东西(不起作用): 我愿意采用完全不同的方法来实现这一点;我只希望它是在一行(所以它很容易编辑和重做) 答案是简单地使用backticks,但有一个关键的但书!以下内容不适用于我,因为hello周围有引号: :args `grep "hello" * -Rl` 但如果

为了进行说明,以下是如何从命令行执行此操作:

vim `grep "hello" * -Rl`
这将打开vim,其中包含所有包含“hello”的文件(-l仅给出文件名)。我想做同样的事情,但在vim内部。从概念上讲,类似这样的东西(不起作用):

我愿意采用完全不同的方法来实现这一点;我只希望它是在一行(所以它很容易编辑和重做)


答案是简单地使用backticks,但有一个关键的但书!以下内容不适用于我,因为
hello
周围有引号:

:args `grep "hello" * -Rl`
但如果我删除它们或转义引号,它就会起作用:

:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`

(这被隐藏在chaos回答后的评论中-我在这里添加它们是为了让它们更明显,以防其他人有这个问题)

好吧,这对我来说很有用:

:args `grep -Rl "hello" *`

运行vim 7.0.305。

尝试
args
命令:

:ar[gs] `grep -Rl "hello" .`
如果backticks对您不起作用,您是否在使用当前版本的vim

:version

谢谢,我尝试过使用backticks,但vim没有识别它们——而是将“`grep”解释为文件名。你有为你工作的答案吗?如果是这样,我想知道为什么它对我不起作用。是的,对我很好。也许是一个版本的东西。我使用的是7.0.305.hmmm,:version给了我:VIM-Vi改进的7.0(2006年5月7日,2007年1月31日编译18:15:57)包括补丁:1-122OK,我升级到了7.1.314版,但问题相同。我正在剪切和粘贴你的代码,所以这不是一个打字错误。可能是一个编译器选项,或者是一个设置。但是有这么多,很难知道是哪一个。我没有找到任何将backtick扩展与编译选项相关联的东西。backtick扩展在限制模式下无法工作(-Z选项在启动时),但我不知道为什么要在该模式下运行。它是版本7,但不是最新版本。我正在检查一个新版本。我刚升级到7.1.314版,但同样的问题。我想知道问题出在哪里。您好,这似乎是关于hello的引语-如果没有这些引语,或者它们被转义了,它也可以正常工作。:-)好的,我很高兴你发现了这个问题!干杯
:version