如何在vim中使用不同的标题和标题标题

时间:2013-10-19 22:53:26

标签: vim tabs header terminal title

截至目前,我已将以下内容放入我的.vimrc文件中,以便在终端的屏幕标题中显示当前打开文件的名称:

autocmd BufEnter * let &titlestring = expand("%:@")
set title

是否也可以设置特定标签标题?也就是说,当我在Mac上的终端中打开了许多vim选项卡时,当我选择了与文件相关的选项卡时,我会终端在终端头中显示目录路径,我想只显示该名称文件在标签的标题中。

1 个答案:

答案 0 :(得分:5)

对您的目标的一些评论

我个人很难在vim中使用制表符。您可以通过设置一些选项来实现您想要的。在我谈论选项之前,我会说你想做的事情可能不方便。因为在vim中,tab是一组窗口,这意味着它可以有分割的窗口,在标签页中,你可以显示多个缓冲区。也就是说,在标签页中,它并不总是显示一个文件。当您在标签页中从拆分切换为拆分时,标题标签的都可能会发生变化。

例如,您的vim中有3个目录,/one /two and /three和两个标签页。

现在你有:

tab1:
/one/file1

tab2 (in split-windows):
/one/file1
/two/file1
/three/file1

当您在tab1时,您的终端标题为/one,标签1标签为file1,很好。但是当你在tab2中时,你的终端标题会随着你从分割切换到分割而改变。在此示例中,选项卡标签与file1相同,因此您必须检查终端窗口选项卡标签,以了解您当前正在编辑的缓冲区/文件。我认为这不方便。

回答你的问题

好的,如果您希望这种情况发生,:h setting-tabline并查看帮助文本中的示例,它会显示如何设置标签的标签。这应该达到你在终端vim的目标。

仅供参考,要获得父目录名称,您可以使用%:p:h。要获得唯一的文件名,您可以使用%:p:t

另外,您可能还想检查一些其他事项:

  • 还有另一个自动命令事件:TabEnter
  • :h setting-tabline如果您希望标语显示一些复杂的文字或其他突出显示
  • 如果您想进一步使用文件名/目录名,可以查看:h expand():h filename-modifiers