3

在 MacVim 中,选项卡的名称似乎设置为最近在该选项卡中打开的缓冲区的名称。这在使用拆分时会造成混淆。如何将选项卡名称固定到选项卡的左上角窗口?

4

2 回答 2

4

以下函数返回加载在左上角窗口中的缓冲区的名称:

function! GuiTabLabel()
    return bufname(winbufnr(1))
endfunction

既然您提到了 MacVim,您可以使用guitablabel,将其设置为我们定义的函数:

set guitablabel=%{GuiTabLabel()}

上述函数的一个问题是 - 根据工作目录 - 它会将选项卡名称设置为左上角缓冲区中文件的完整路径,这可能会变得很长。

将函数更改为仅使用文件名,丢弃路径:

function! GuiTabLabel()
    return fnamemodify(bufname(winbufnr(1)), ":t")
endfunction

要坚持这一点,请在 .vimrc 中定义函数,并在函数之后:

set guitablabel=%!GuiTabLabel()

但是这个简单的设置对我使用 MacVim 不起作用:看起来 MacVim 启动正在覆盖我的更改。在 .gvimrc 中设置它在MacVim 中确实有效。介于两者之间:scriptnames:verbose set guitablabel看起来就像在 .vimrc 中设置它应该可以工作,就像在 windows gvim 中一样。

有关:help setting-guitablabel更多信息和更复杂的函数示例,请参阅;查看:help fname-modifiers更多路径修饰符选项。

于 2012-07-21T20:12:38.713 回答
3

你可以使用类似的东西

au BufEnter * set guitablabel=%{fnamemodify(bufname(winbufnr(1)), ":t")}

请参阅:help statusline:help guitablabel了解更多信息。这基本上将选项卡标签设置为左上角窗口的名称。其余的在:help... BufEnter, fnamemodify(, bufname(,winbufnr(等中。

于 2012-07-21T19:51:36.063 回答