当我需要同时处理不同的项目时,我有以下工作流程:
- 我为每个项目创建一个选项卡。
- 在每个选项卡中,打开要编辑的文件,这将创建多个缓冲区。
- 可选地,如果我需要同时查看两个(或多个)文件,则可以创建拆分窗口,因此我有一个包含不同窗口的选项卡,其中显示了一个缓冲区。
我的缓冲区我真的不使用之间进行切换:ls
,并:b [name or number of buffer]
代替我创造了一些方便的映射,让我与缓冲区之间切换:bnext
,并:bprevious
这种工作方式非常好,但让我感到困扰:缓冲区在选项卡之间共享。
如果我打开file1
,并file2
在tab1
和file3
中tab2
,如果tab1
我用几个时间:bnext
我会看到file3
在这个标签,我不想。我想要得到的工作流程如下:
- 启动vim(我有一个带有缓冲区的第一个选项卡):
$ vim foo
- 将缓冲区添加到此选项卡:
:e bar
- 打开一个新标签并切换到它:
:tabnew
- 在此选项卡中打开一个新缓冲区:
:e baz
- 如果我留在此缓冲区中并且
:bnext
还是:bprevious
要留在baz
缓冲区中(因为它是此选项卡中唯一的缓冲区) - 如果我进入上一个选项卡
:tabprevious
并执行几次,则:bnext
只能在foo
和bar
缓冲区之间切换,但看不到baz
因此,我的问题来了:是否可以将一组缓冲区绑定到一个选项卡,并使vim禁止从另一个选项卡(而不是它们要进入的那个)访问某些缓冲区?
注意:我知道使用:b [myBuffer]
可以在选项卡中保留缓冲区,但是当我要编辑3或4个文件时,我觉得使用映射的速度确实比输入缓冲区名称要快(即使我可以仅键入一些字符以匹配缓冲区名称)。
alt+tab
(甚至更糟的是鼠标)感觉比在vim中切换选项卡容易得多。