如何使用变量内容作为 vim 命令的参数?

Vit*_*ner 15 vim

例如假设我做了

:let foo=pattern
Run Code Online (Sandbox Code Playgroud)

现在我想执行Ggrep patter但使用变量foo而不是文字patter字符串。

:echo foo
Run Code Online (Sandbox Code Playgroud)

输出pattern,但是

:Ggrep foo
Run Code Online (Sandbox Code Playgroud)

只是寻找 foo

更新:

构建一串命令然后在其上运行 :execute 不是解决方案,而是一种黑客攻击。它打破了任何非平凡的变量值。

aki*_*ira 9

关于什么:

:execute ':grep ' . foo
Run Code Online (Sandbox Code Playgroud)


小智 2

这与变量无关,但也许 vim 缩写命令可以提供帮助。从命令行尝试:

:abbreviate foo pattern
Run Code Online (Sandbox Code Playgroud)

然后

:Ggrep foo<space>
Run Code Online (Sandbox Code Playgroud)

它将把“foo”补全为您的“模式”。