在MacVim中,选项卡的名称似乎设置为该选项卡中最近打开的缓冲区的名称。这在使用拆分时会造成混淆。如何在选项卡中将标签名固定到左上角的窗口?
答案 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
... BufEnter
,fnamemodify(
,bufname(
,winbufnr(
等。