首页 > 解决方案 > 在 vim 中,如何将缓冲区列表中的文件(匹配模式)添加到参数列表中?

问题描述

假设我打开了没有参数的 vim,然后在 vim 中打开了 10 个 .txt 文件和 10 个 .py 文件。另外,假设文件分散在我的文件系统中。缓冲区列表包含所有 20 个文件。

现在我想将 10 个 .py 文件添加到参数列表中。我想做类似的事情:argadd *.py,但这只是创建一个名为'*.py'的新文件并将其添加到参数列表中。

我从帮助中看到 argd[elete] 可以使用模式,所以我可以删除所有带有 .py 的文件:argd *.py。有没有办法做类似的事情 :arga[dd]

:[count]arga[dd] {name} ..
            Add the {name}s to the argument list.  

:argd[elete] {pattern} ..
            Delete files from the argument list that match the
            {pattern}s.

肯定有比导航到每个 .py 文件并运行更好的方法 :argadd吗?

标签: vimvi

解决方案


您可以使用一个简单的命令根据一些判别式遍历所有缓冲区并将它们添加到参数列表中:

:bufdo if &ft == 'python' | argadd | endif

或者,如果您真的不喜欢打字:

:bufdo if&ft=='python'|arga|en

:help :bufdo


推荐阅读