Vim:特定のタブのラベルを変更


19

Vimでたくさんのタブを開いているとします。タブラインは次のようになります。

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

2つのタブが両方とも「t / file.py」と言っている様子をご覧ください。これらは異なるファイルで、同じタブラベルに変わります。

私のワークフローでは、タブのタイトルがあいまいな場合が多く(Chefがすべて「default.rb」と命名しているため)、または役に立たない(「4つのバッファーを備えたこれらの8つのタブの1つにそれぞれ探しているファイルがあります...」)。

タブの名前を変更して、それらが論理的に表すものを示したいと思います。

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'
ベンジフィッシャー14

回答:


15

これを簡単にするタブーと呼ばれる素敵な小さなプラグインがあります。インストールするだけで、次の方法でタブのタイトルを変更できます。

:TabooRename My Tab Title

独自のソリューションの作成に興味がある場合は、そのプラグインのソースコードを確認できます。


Taboo素晴らしい。TabooResetそしてTabooRename文字通りタブライン==>の2「モード」を切り替えますという名前のことでタブタブー、との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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.