Vim:可以全局标记切换选项卡而不是当前选项卡中的文件吗?

时间:2010-07-21 07:41:32

标签: vim tabs

我正在学习vim,我刚学会了标记。在此之前,我发现在我们自己的选项卡中处理所有源代码文件很有用。当我发现“全球”(大写字母)标记时,我认为这将是一种很好的方法,可以切换到已打开标记文件的标签,并快速滚动到正确的位置。 但是,我发现跳转到另一个文件中的标记只会更改当前标签显示的文件,这会弄乱我的标签设置。 有没有办法让标记以我想要的方式与标签一起使用?

2 个答案:

答案 0 :(得分:4)

问题是标记跳转命令被设计为移动到当前窗口中的标记 。您需要使用:sbuf:tabnext CTRL + W W 切换到新窗口 。如果您设置了switchbuf=useopen,usetab,那么首先使用:sbuf <otherfile>就足以跳转到文件打开的其他标签页。但'A 不会为您创建新窗口(或在另一个标签中重复使用现有窗口)。

你可以为'和`which uses getpos(), setpos(),:sbuf , and switchbuf`创建一个映射来跳转到另一个选项卡中的现有窗口,但它将涉及编写一个vimscript页面。

请参阅:help switchbuf:help getpos()以及:help setpos()

答案 1 :(得分:1)

标签可能不是您尝试做的最佳方式。文件打开时,不一定只在一个选项卡中打开。它在缓冲区中打开,这是一个与标签无关的概念。

实际上,您可以在多个选项卡中打开相同的缓冲区(甚至可以在同一选项卡中打开多个窗格)。选项卡更像是一个或多个当前打开的缓冲区的窗口。

了解如何在当前标签或窗格中的缓冲区之间切换可能会更好。只是一个建议。