เป็นกลุ่ม: เปลี่ยนฉลากสำหรับแท็บเฉพาะ


19

สมมติว่าฉันมีแท็บจำนวนมากเปิดใน Vim โดยที่ tabline มีลักษณะดังนี้:

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

ดูว่าทั้งสองแท็บพูดว่า "t / file.py" อย่างไร สิ่งเหล่านี้เป็นไฟล์ที่แตกต่างกันพวกเขาเพิ่งเปลี่ยนเป็นป้ายกำกับแท็บเดียวกัน

ในเวิร์กโฟลว์ของฉันชื่อแท็บมักจะคลุมเครือ (yay สำหรับ Chef ตั้งชื่อทุกอย่าง "default.rb") หรือไม่ช่วยเหลือ ("ฉันรู้หนึ่งใน 8 แท็บเหล่านี้ที่มี 4 บัฟเฟอร์แต่ละไฟล์มีไฟล์ที่ฉันกำลังมองหา ... ")

ฉันต้องการเปลี่ยนชื่อแท็บเพื่อระบุสิ่งที่พวกเขาแสดงถึงเหตุผล:

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

ฉันใช้ได้กับแท็บที่กำหนดค่าเริ่มต้นเป็นป้ายกำกับตามชื่อไฟล์ตราบใดที่ฉันมีอิสระที่จะเปลี่ยนเมื่อสร้างแท็บแล้ว

ฉันจะทำสิ่งนี้ใน Vim ได้อย่างไร


1
ฉันไม่มีเวลาที่จะทำการทดลองในตอนนี้ แต่ดู:help setting-tabline(สำหรับกลุ่มในเทอร์มินัล) หรือ:help setting-guitablabel(สำหรับ gvim) คุณสามารถเขียนฟังก์ชันที่ตรวจสอบตัวแปร tab-local และส่งคืนค่านั้นหรือค่าเริ่มต้นบางส่วน :let t:mytablabel = 'homepage_template'จากนั้นหลังจากที่เปิดแท็บ
benjifisher

คำตอบ:


15

มีปลั๊กอินเล็ก ๆ ที่เรียกว่าTabooที่ทำให้ง่าย เพียงติดตั้งแล้วคุณสามารถเปลี่ยนชื่อแท็บด้วย:

:TabooRename My Tab Title

คุณสามารถดูซอร์สโค้ดสำหรับปลั๊กอินนั้นได้หากคุณสนใจที่จะเขียนโซลูชันของคุณเอง


Tabooมันวิเศษมาก TabooResetและTabooRenameแท้จริงสลับสอง "โหมด" ของแท็บบรรทัด ==> แท็บชื่อโดยTabooและแท็บอัตโนมัติชื่อโดย Vim สิ่งนี้เลียนแบบ " named Windows " จาก Tmux อย่างสมบูรณ์แบบ ยังดีกว่าแท็บชื่อภายใต้ข้อห้ามสามารถเรียกคืนได้โดยใช้Startify (หรือภายใต้เครื่องมือการประหยัดเซสชันอื่น ๆ )
llinfeng

8

สำหรับ gvim ดู

:help 'guitablabel'
:help setting-guitablabel

ตั้งค่าตัวเลือกเป็นนิพจน์ที่ประเมินเป็นt:mytablabel(ตัวแปร tab-local) หากมีอยู่หรือเป็นสตริงว่างเปล่า (หมายถึงใช้ค่าเริ่มต้น):

: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'

ถ้าคุณกำลังใช้เป็นกลุ่มใน terminal ไม่ gvim แล้วคุณต้องตั้งค่าตัวเลือกแทน'tabline' 'guitablable'สิ่งนี้ซับซ้อนกว่านี้เล็กน้อยเนื่องจากคุณต้องการนิพจน์เดียวที่มีป้ายกำกับสำหรับแท็บที่เปิดอยู่ทั้งหมด มีตัวอย่างที่สมบูรณ์ภายใต้

:help setting-tabline
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.