控制Vim中的选项卡名称

时间:2012-07-21 19:36:18

标签: vim

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

您可以使用类似

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

有关详细信息,请参阅:help statusline:help guitablabel。这基本上将选项卡标签设置为左上角窗口的名称。其余部分位于:help ... BufEnterfnamemodify(bufname(winbufnr(等。