Vim:更改特定选项卡的标签

spi*_*ech 21 vim

假设我在 Vim 中打开了一堆标签,其中一个标签行看起来像这样:

1 v/file1.py 2 t/file.py 1 t/file.py 1 o/otherfile.py

看看两个选项卡都怎么说“t/file.py”?这些是不同的文件,它们只是变成了相同的标签标签。

在我的工作流程中,标签标题通常不明确(是的,厨师将所有内容命名为“default.rb”)或无用(“我知道这 8 个标签中的一个有 4 个缓冲区,每个标签都有我正在寻找的文件......”)。

我想重命名选项卡以指示它们在逻辑上代表的内容:

1 homepage_view 2 tests 1 homepage_template 1 o/otherfile.py

我可以使用默认为基于文件名的标签的选项卡,只要在创建选项卡后我可以自由更改它。

我怎样才能在 Vim 中做到这一点?

小智 17

有一个名为Taboo的不错的小插件可以让这一切变得简单。只需安装它,然后您就可以使用以下命令更改选项卡标题:

:TabooRename My Tab Title
Run Code Online (Sandbox Code Playgroud)

如果您有兴趣编写自己的解决方案,可以查看该插件的源代码。

  • 《禁忌》太棒了。 `TabooReset` 和 `TabooRename` 从字面上切换 Tab 行的两种“模式”==> _Taboo_ 的*命名*选项卡和 Vim 的自动命名选项卡。这完美地复制了 Tmux 中的“_named Windows_”。更好的是,可以使用 [Startify](https://github.com/mhinz/vim-startify)(或在任何其他会话保存工具下)恢复在 Taboo 下命名的选项卡。 (3认同)

ben*_*her 8

对于 gvim,请参见

:help 'guitablabel'
:help setting-guitablabel
Run Code Online (Sandbox Code Playgroud)

将选项设置为一个表达式,t:mytablabel如果它存在,则计算结果为(选项卡局部变量),否则设置为空字符串(意味着使用默认值):

:set guitablabel=%{exists('t:mytablabel')?t:mytablabel\ :''}
Run Code Online (Sandbox Code Playgroud)

也许这已经太复杂了,或者你想变得更漂亮。在这种情况下,定义一个函数:

function! GuiTabLabel()
  return exists('t:mytablabel') ? t:mytablabel : ''
endfunction
:set guitablabel=%{GuiTabLabel()}
:set go+=e
Run Code Online (Sandbox Code Playgroud)

然后,在要覆盖默认值的任何选项卡中,执行类似的操作

:let t:mytablabel = 'homepage_template'
Run Code Online (Sandbox Code Playgroud)

如果您在终端中使用 vim 而不是 gvim,那么您必须设置'tabline'选项而不是'guitablable'. 这有点复杂,因为您需要一个包含所有打开选项卡标签的表达式。下面有一个完整的例子

:help setting-tabline
Run Code Online (Sandbox Code Playgroud)