在vim中,如何将“args”设置为“grep -l”的结果?

时间:2009-06-23 16:00:38

标签: vim command-line grep vi

为了说明,这里是如何从命令行执行此操作:

vim `grep "hello" * -Rl`

这将打开vim,其中包含所有“hello”的文件(-l仅提供文件名)。我想做同样的事情,但是从vim内部。从概念上讲,这样的事情(不起作用):

:args !grep "hello" * -Rl

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


答案是简单地使用反引号 - ,但附带一个关键条款!由于hello周围的引号,以下内容对我不起作用:

:args `grep "hello" * -Rl`

但如果我删除它们或转义引号它就可以了:

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

(这是在混乱的回答之后被埋没在评论中 - 我在这里添加它们以使它们更加明显,以防其他人有这个问题)

2 个答案:

答案 0 :(得分:8)

嗯,这对我有用:

:args `grep -Rl "hello" *`

运行vim 7.0.305。

答案 1 :(得分:3)

尝试args命令:

:ar[gs] `grep -Rl "hello" .`

如果反引号不适合您,您使用的是使用当前版本的vim吗?

:version