在 Vi 中一次打开多个附加选项卡

在 Vi 中一次打开多个附加选项卡

我经常在 vi 中一次在多个文件之间来回切换,并且总是使用 添加更多文件tabe。有没有办法同时添加多个选项卡,同时保留所有打开的选项卡?

我尝试了显而易见的方法tabe *.php,但显然tabe只接受一个文件,因为这会产生too many arguments错误。我还尝试将文件添加到 args,然后tab all按照以下方式打开 args这个答案但这会关闭我打开的标签(可能是因为我覆盖了参数)。我想我正在尝试做的是将文件名附加到参数。有人知道怎么做吗?

答案1

  1. 将所有*.php文件添加到参数列表:

    :args *.php
    
  2. 将参数列表中的每个项目移动到新选项卡:

    :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>在选项卡中打开您的选择。

相关内容