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

标签 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`

(这在困惑的回答后被埋在评论中 - 我在这里添加它们以使它们更明显,以防其他人遇到这个问题)

最佳答案

嗯,这对我有用:

:args `grep -Rl "hello" *`

运行 vim 7.0.305。

关于vim - 在 vim 中,如何将 "args"设置为 "grep -l"的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033524/

相关文章:

bash - 在 bash 中检查命令行标志的正确方法

java - 如何从文本文件加载并执行java命令

python - 如何从powershell激活不同的anaconda环境

regex - 为什么这个 `grep -o` 会失败,我应该如何解决它?

Vim,如何在一个快捷键下映射两个任务?

Vim 和 Tmux 渲染错误

vim - vimrc 映射中的内联注释

linux bash - 比较两个文件并删除具有相同结尾的重复行

c# 如何快速通过 ~300mb 日志文件进行 grep

vim - 如何跳转到vim中不同选项卡内的标记?