在 MacVim 中,选项卡的名称似乎设置为最近在该选项卡中打开的缓冲区的名称。这在使用拆分时会造成混淆。如何将选项卡名称固定到选项卡的左上角窗口?
问问题
3711 次
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 回答