29

我经常在 vim 中编辑长文件,这些文件在文件的多个不同位置有代码块,我需要不断地在这些文件之间来回切换。显然,解决此问题的一种方法是使用 :split 拆分窗口并在不同的拆分窗口中编辑每个部分,并且:w任一窗口中的 a 都将保存整个文件。如果您有足够大的屏幕,这很好,但有时我必须在低分辨率笔记本电脑上使用 vim,而且我不想通过拆分窗口来进一步减少屏幕空间。

在这种情况下,我真正想做的是在多个选项卡中编辑文件,并将每个单独的选项卡完全视为单独的视图拆分。一旦我打开文件的一个副本,我就可以通过使用来模仿这一点:tabopen <the same filename>,但这有点hacky - 如果我已经对文件进行了更改,它就不起作用,因为vim认为我只是在打开文件第二次。

有没有一种好方法可以通过 vim 中的选项卡获得我想要的行为?

4

2 回答 2

38

:tab命令将命令作为参数。

所以你可以这样做:

:tab split

即使修改了缓冲区,这也将起作用,并且任一选项卡中的保存都会保存文件,同时更新两个选项卡中的保存状态。

于 2012-07-03T18:55:41.170 回答
8

您可以使用以下:tab命令:

:[count]tab {cmd}`

执行{cmd},当它打开一个新窗口时,打开一个新的标签页。[...] 当[count]被省略时,标签页出现在当前标签页之后。何时[count]指定新标签页位于标签页之后[count]。用于:0tab cmd获取新标签页作为第一个。

例子:

:tab split           " opens the current buffer in new tab page
:tab help gt         " opens tab page with help for "gt"
于 2012-07-03T18:59:05.773 回答