Vim:更改特定标签的标签


19

假设我在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中做到这一点?


1
我现在没有时间进行实验,但是请参阅:help setting-tabline(对于终端中的vim)或:help setting-guitablabel(对于gvim)。您可以编写一个函数来检查制表符局部变量,然后返回该变量或某些缺省值。然后,在打开标签后,:let t:mytablabel = 'homepage_template'
benjifisher 2014年

Answers:


15

有一个名为Taboo的不错的小插件,可简化此过程。只需安装它,然后可以使用以下方法更改选项卡标题:

:TabooRename My Tab Title

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


Taboo太棒了。TabooResetTabooRename字面上切换两个选项卡行==>一的“模式”的命名通过标签禁忌,并通过Vim的自动命名的选项卡。这完美地复制了Tmux 的“ Windows ”。更好的是,可以使用Startify(或在任何其他节省会话的工具下)恢复在“禁忌”下命名的选项卡。
llinfeng

8

对于gvim,请参见

:help 'guitablabel'
:help setting-guitablabel

将选项设置为一个表达式,t:mytablabel如果存在,则表达式的值为(制表符局部变量),否则为空字符串(表示使用默认值):

:set guitablabel=%{exists('t:mytablabel')?t:mytablabel\ :''}

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

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

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

:let t:mytablabel = 'homepage_template'

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

:help setting-tabline
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.