为了说明,这里是如何从命令行做到这一点:,如何将“args”设置为“grep -l”的结果?
vim `grep "hello" * -Rl`
这将打开VIM与所有有“你好”在他们(-l给出单独的文件名)的文件。我想要做同样的事情,但是从vim开始。从概念上讲,这样的事情(这是行不通的):
:args !grep "hello" * -Rl
我打开完全不同的方法来实现这一点;我只想把它放在一行上(所以编辑和重做很容易)。
答案是简单地使用反引号 - ,但有一个关键的限制条件!以下不为我工作,因为引号,周围hello
:
:args `grep "hello" * -Rl`
但如果我删除或逃避引号它的工作原理:
:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
(这是埋在“混沌后的评论”的答案 - 我在这里添加它们使其更容易看到,以防其他人有这个问题)
谢谢,我试过使用反引号,但vim不能识别它们 - 而是将“grep”解释为文件名。你有答案为你工作吗?如果是这样,我想知道为什么它不适合我。 – 13ren 2009-06-23 16:10:52
对,对我来说工作得很好。也许是版本的东西。我使用7.0.305。 – chaos 2009-06-23 16:13:37