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

时间:2010-08-12 14:29:40

标签: vim vi

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

:tabe **/test*.py

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

4 个答案:

答案 0 :(得分:31)

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

:args **/test*.py
:argdo tabe %

但是,语法事件由argdo关闭(以加快正常使用情况),因此文件将首先加载而不需要语法。您可以使用:syntax on跟进它,以强制所有已加载缓冲区上的语法事件。压缩成一行(需要在argdo中包裹execute,以便它不会吸收以下|):

:args **/test*.py | execute 'argdo tabe %' | syntax on

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

vim -p **/test*.py

但是最多只有10个标签。

答案 1 :(得分:8)

您可以使用以下内容:

:next **/test*.py

打开所有文件。

答案 2 :(得分:1)

要映射

nmap <c-d> :args **/*.tpl<bar>execute 'argdo tabe %'<bar>syntax on<cr>

但是它仍然显示文件列表,你必须按几次输入(取决于文件数量)。

答案 3 :(得分:0)

此功能可以作为命令包含在.vimrc文件中:

"open all files in seperate tabs
command -nargs=1 OpenAll call <SID>openAll(<f-args>)
function! s:openAll(dir)
    execute 'args ' . a:dir
    silent argdo tabe %
    syntax on
endfunction

通过从vim运行:OpenAll **/*.py的此功能,可以快速将所有文件打开到新标签页中