在给定的工作目录中,如果我这样做
:tabe **/test*.py
vim
向E77: Too many file names
抱怨。如果我希望它在单独的选项卡中打开每个匹配的文件怎么办?必须有办法,但我找不到它。
答案 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
的此功能,可以快速将所有文件打开到新标签页中