在vim中,如何将缓冲区列表中的文件(匹配模式)添加到参数列表中?
假设我在没有参数的情况下打开了 vim,然后在 vim 中打开了 10 个 .txt 文件和 10 个 .py 文件。另外,假设文件分散在我的文件系统中。缓冲区列表包含所有 20 个文件。
现在我想将 10 个 .py 文件添加到参数列表中。我想做类似的事情:argadd *.py,但这只会创建一个名为“*.py”的新文件并将其添加到参数列表中。
我从帮助中看到 argd[elete] 可以使用模式,因此我可以删除所有带有 .py 文件的 .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吗?
回答
您可以使用一个简单的命令遍历所有缓冲区并将它们添加到基于某些判别式的参数列表中:
:bufdo if &ft == 'python' | argadd | endif
或者,如果你真的不喜欢打字:
:bufdo if&ft=='python'|arga|en
见:help :bufdo。