Katakanlah saya memiliki banyak tab yang terbuka di Vim, dengan sebuah tabline terlihat seperti ini:
1 v/file1.py 2 t/file.py 1 t/file.py 1 o/otherfile.py
Lihat bagaimana dua tab sama-sama mengatakan "t / file.py"? Itu adalah file yang berbeda, mereka hanya bisa diubah menjadi label tab yang sama.
Dalam alur kerja saya, judul tab sering ambigu (yay untuk Chef menamai semuanya "default.rb") atau tidak membantu ("Saya tahu salah satu dari 8 tab ini dengan 4 buffer yang masing-masing memiliki file yang saya cari ...").
Saya ingin mengganti nama tab untuk menunjukkan apa yang secara logis mereka wakili:
1 homepage_view 2 tests 1 homepage_template 1 o/otherfile.py
Saya baik-baik saja dengan tab default ke label berbasis nama file, selama saya bebas untuk mengubahnya setelah tab dibuat.
Bagaimana saya bisa melakukan ini di Vim?
:help setting-tabline
(untuk vim di terminal) atau:help setting-guitablabel
(untuk gvim). Anda bisa menulis fungsi yang memeriksa variabel tab-local dan mengembalikannya atau default. Kemudian, setelah membuka tab:let t:mytablabel = 'homepage_template'
,.Jawaban:
Ada plugin kecil yang bagus yang disebut Tabu yang membuatnya mudah. Instal saja dan kemudian Anda dapat mengubah judul tab dengan:
Anda dapat melihat kode sumber untuk plugin itu jika Anda tertarik untuk menulis solusi Anda sendiri.
sumber
Untuk gvim, lihat
Setel opsi ke ekspresi yang dievaluasi menjadi
t:mytablabel
(variabel tab-lokal) jika ada, atau yang lain menjadi string kosong (artinya menggunakan default):Mungkin itu sudah terlalu rumit, atau mungkin Anda ingin menjadi pelamun. Dalam hal ini, tentukan fungsi:
Kemudian, di tab mana pun yang ingin Anda timpa default, lakukan sesuatu seperti
Jika Anda menggunakan vim di terminal, bukan gvim, maka Anda harus mengatur
'tabline'
opsi'guitablable'
. Ini sedikit lebih rumit, karena Anda memerlukan satu ekspresi yang menyertakan label untuk semua tab yang terbuka. Ada contoh lengkap di bawahsumber