0

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

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

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

4

1 回答 1

6

对您的目标的一些评论

就我个人而言,我几乎不使用 vim 中的制表符。你想要的可以通过设置一些选项来实现。在我谈论选项之前,我会说你想做的事情可能不方便。因为在vim中,tab是windows的集合,也就是说,它可以有分割的windows,并且在一个tab页中,可以显示多个buffer。也就是说,在标签页中,它并不总是显示一个文件。当您在标签页中从拆分切换到拆分时,您的终端标题标签标签都可能会发生变化。

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

现在你有:

tab1:
/one/file1

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

当您在时tab1,您的终端标题将是/one,tab1-label 将是file1,很好。但是当您在 tab2 中时,您的终端标题会随着您从拆分切换到拆分而改变。在此示例中,选项卡标签将是相同的file1,因此您必须检查终端窗口选项卡标签才能知道您当前正在编辑哪个缓冲区/文件。我不认为这很方便。

回答你的问题

好的,如果您希望发生这种情况,:h setting-tabline并检查帮助文本中的示例,它会显示如何设置选项卡的标签。这应该可以实现终端中 vim 的目标。

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

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

  • 还有另一个自动命令事件:TabEnter.
  • :h setting-tabline如果您希望您的表格显示一些复杂的文本或其他突出显示
  • 如果您想进一步使用文件名/目录名,您可以检查:h expand():h filename-modifiers
于 2013-10-20T00:03:22.563 回答