Vim: belirli sekme için etiketi değiştir


19

Diyelim ki Vim'de açık bir grup sekme var, bir tabline şöyle görünüyor:

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

İki sekmenin nasıl "t / file.py" dediğini görüyor musunuz? Bunlar farklı dosyalardır, sadece aynı sekme etiketine dönüştürülürler.

İş akışımda sekme başlıkları genellikle belirsizdir (Chef için her şeyi "default.rb" olarak adlandırmak için yay ) veya yararsızdır ("Her biri aradığım dosyada 4 tampon bulunan bu 8 sekmeden birini biliyorum ...").

Sekmeleri, mantıksal olarak neyi temsil ettiklerini belirtmek için yeniden adlandırmak istiyorum:

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

Sekme oluşturulduktan sonra değiştirebildiğim sürece, dosya adı tabanlı bir etikete varsayılan sekmelerle iyiyim.

Bunu Vim'de nasıl yapabilirim?


1
Şu anda denemek için zamanım yok, ama :help setting-tabline(terminaldeki vim için) veya :help setting-guitablabel(gvim için) bakın. Bir sekme-yerel değişkeni kontrol eden ve bu veya bazı varsayılanları döndüren bir işlev yazabilirsiniz. Sonra, bir sekmeyi açtıktan sonra :let t:mytablabel = 'homepage_template',.
benjifisher

Yanıtlar:


15

Bunu kolaylaştıran Taboo adında güzel bir eklenti var . Sadece yükleyin ve ardından sekme başlığını şu şekilde değiştirebilirsiniz:

:TabooRename My Tab Title

Kendi çözümünüzü yazmakla ilgileniyorsanız, bu eklentinin kaynak koduna bakabilirsiniz.


Tabooharika. TabooResetve TabooRenamekelimenin tam anlamıyla Tab-line ==> Taboo tarafından adlandırılmış bir sekmenin iki "modunu" ve Vim tarafından otomatik olarak adlandırılmış bir sekmeyi değiştirir. Bu Tmux " Windows adlandırılmış " mükemmel çoğaltır. Daha da iyisi , Tabu altında adlandırılan sekmeler Startify (veya herhangi bir oturum kaydetme aracı altında) kullanılarak geri yüklenebilir .
llinfeng

8

Gvim için bkz.

:help 'guitablabel'
:help setting-guitablabel

Seçeneği t:mytablabelvarsa (tab-local değişkeni) olarak değerlendirilen bir ifadeye veya boş bir dizeye (varsayılanı kullanmak anlamına gelir) ayarlayın:

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

Belki bu zaten çok karmaşıktır ya da belki daha meraklı olmak istersiniz. Bu durumda, bir işlev tanımlayın:

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

Ardından, varsayılanı geçersiz kılmak istediğiniz herhangi bir sekmede,

:let t:mytablabel = 'homepage_template'

Vim gvim 'tabline'yerine bir terminalde kullanıyorsanız, bunun yerine seçeneği ayarlamanız gerekir 'guitablable'. Tüm açık sekmeler için etiketler içeren tek bir ifadeye ihtiyacınız olduğu için bu biraz daha karmaşıktır. Altında tam bir örnek var

:help setting-tabline
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.