我经常在 vi 中一次在多个文件之间来回切换,并且总是使用 添加更多文件tabe
。有没有办法同时添加多个选项卡,同时保留所有打开的选项卡?
我尝试了显而易见的方法tabe *.php
,但显然tabe
只接受一个文件,因为这会产生too many arguments
错误。我还尝试将文件添加到 args,然后tab all
按照以下方式打开 args这个答案但这会关闭我打开的标签(可能是因为我覆盖了参数)。我想我正在尝试做的是将文件名附加到参数。有人知道怎么做吗?
答案1
将所有
*.php
文件添加到参数列表::args *.php
将参数列表中的每个项目移动到新选项卡:
:argdo tabe
但是您应该重新考虑一下制表符的使用:缓冲区是一个非常简单的比喻。
答案2
如果你不想弄乱参数定义函数
fu! OpenTabs( pattern )
let list = split(expand(a:pattern), '\n')
call map(list, "'tabe ' . v:val")
for c in list | exe c | endfor
endf
例如,要在选项卡中编辑所有 rc 文件,请执行以下操作:
:call OpenTabs( '.*rc' )
除此之外您还可以使用,argadd
这样您的当前列表就不会被替换。
答案3
我赞同@romainl 所说的话:你应该尝试习惯缓冲区(大约六个月前我和你的情况完全一样,现在我几乎从不使用制表符)。
这就是说:
:tab ball
将在单独的选项卡中打开所有现有缓冲区(您正在编辑的文件)。因此,您可以使用:
:e *.php
:tab ball
参见vim:h ball
内部:h tab
。
答案4
使用控制板插件您可以选择与特定搜索匹配的多个文件。
输入搜索内容后,使用<C-j>
和<C-k>
(或箭头)在结果列表中移动并<C-z>
选择/取消选择文件。然后使用<C-t>
在选项卡中打开您的选择。