vim中的switchbuf导致空缓冲区

时间:2013-12-18 08:03:36

标签: vim buffer macvim

我的~/.vimrc

中有以下设置
set hidden
set switchbuf+=usetab,newtab

当我按 Enter 时,第二行允许我在新选项卡中从QuickFix窗口打开文件。一切正常,但是当在新选项卡中打开新文件时,它会在缓冲区列表中生成一个新的空缓冲区。

如果没有这个新的空缓冲区,是否可以使用上述功能?

我使用的是以下版本的macvim

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 25 2013 10:33:00)
MacOS X (unix) version
Included patches: 1-52
Compiled by Homebrew

1 个答案:

答案 0 :(得分:1)

您正在查看实施细节。在buflist_getfile()(在src/buffer.c中找到)中,switchbuf=newtab由此代码处理:

if (swb_flags & SWB_NEWTAB)     /* Open in a new tab */
    tabpage_new();

基本上,Vim执行:tabnew后跟:edit file命令,而:tabedit file会更好,因为它避免了空标签页(必须显示内容,所以创建空缓冲区。)

不可否认,这主要是一个美容问题,但我可以理解它让你烦恼。你可以在vim_dev mailing list上提出这个问题。理想情况下,修补程序可以修复问题。