是否可以在VIM中使用单独的缓冲区创建2个选项卡?

时间:2014-10-14 15:42:52

标签: vim tabs buffer

我主要在网站上工作,有时我需要为后端显示3或4个缓冲区,同时为前端显示3或4个缓冲区。标签就在这里,但缓冲区是混合的。我知道我有点挑剔,但有没有办法创建缓冲区"集合"从标签?它可以通过制表符限制打开的缓冲区数量,并且更容易从一个(缓冲区)切换到另一个缓冲区。

2 个答案:

答案 0 :(得分:3)

我非常广泛地使用制表符来处理不同的目录(有时是4个以上的标签页)

结合像CtrlP这样的插件和:lcd命令,您可以有效地拥有多个工作区(每个工作区都有不同的目录),并且心理维护最少。

:lcd命令仅更改当前窗口的目录,因此我使用它的方式如下。

  1. 使用:tabnew
  2. 打开一个新标签页
  3. :lcd ~/somewhere/else
  4. ctrl + pCtrlP的默认绑定打开当前目录中的文件)并找到要编辑的文件
  5. 使用:tn:tp在标签之间切换(显然我有很多关键字绑定,因为我做了很多切换)
  6. 所以基本上每个选项卡都有自己的工作目录,并使用ctrl + p在文件/缓冲区之间切换。

答案 1 :(得分:2)

是的,您可以拥有窗口本地参数列表:

$ vim
:arglocal foo bar baz
:tabnew
:arglocal arthur robert charles

现在,第一个标签页中的:args应输出:

[foo] bar baz

,并在第二个标签页中:

[arthur] robert charles

这种方法的一个潜在问题是,你以某种方式限制于特定于参数的命令:

:n[ext]
:prev[ious]  (or :N[ext])
:fir[st]     (or :rew[ind])
:la[st]
:argl[ocal]

和特定于标签的命令:

:tabn[ext]                         (or gt)
:tabp[revious]  (or :tabN[ext])    (or gT)
:tabfir[st]     (or :tabr[ewind])
:tabl[ast]

如果你只使用全局参数列表:b <tab>:bn/:bp的循环特性......),它就不像更通用的命令那样灵活。

那就是说,你仍然有可能在vim.org上寻找一个插件。