如何使vim打开与不同选项卡中的模式匹配的所有文件?

Mar*_*ech 19 vi vim

在给定的工作目录中,如果我这样做

:tabe **/test*.py
Run Code Online (Sandbox Code Playgroud)

vim抱怨E77: Too many file names.如果我希望它在单独的选项卡中打开每个匹配的文件怎么办?必须有办法,但我找不到它.

nic*_*ans 31

您可以使用args列表,argdo如下所示:

:args **/test*.py
:argdo tabe %
Run Code Online (Sandbox Code Playgroud)

但是,语法事件被关闭argdo(以加快正常使用情况),因此首先加载文件而不使用语法.你可以跟着它:syntax on来强制所有加载的缓冲区上的语法事件.压缩成一行(需要包装argdo,execute所以不吸收以下内容|):

:args **/test*.py | execute 'argdo tabe %' | syntax on
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过命令行打开vim:

vim -p **/test*.py
Run Code Online (Sandbox Code Playgroud)

但这最多可达10个标签.

  • 非常感谢!现在,如何将模式作为参数,以便可以将脚本映射到新命令并执行,例如::: tabeall ** / test * .py`? (2认同)

小智 8

您可以使用以下内容:

:next **/test*.py
Run Code Online (Sandbox Code Playgroud)

它会打开所有文件.