विम: विशिष्ट टैब के लिए लेबल बदलें


19

कहो कि मेरे पास विम में खुले टैब का एक गुच्छा है, एक टैबलाइन के साथ कुछ इस तरह दिखता है:

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

देखें कि दोनों टैब "t / file.py" कैसे कहते हैं? वे अलग-अलग फाइलें हैं, वे बस एक ही टैब लेबल में बदल जाते हैं।

मेरे वर्कफ़्लो में टैब टाइटल्स अक्सर अस्पष्ट होते हैं (शेफ के नाम के लिए yay सब कुछ "default.rb") या unhelpful ("मुझे पता है कि इन 8 टैब में से एक 4 बफ़र्स के साथ है जिसमें से प्रत्येक के पास वह फ़ाइल है जिसकी मुझे तलाश है ...")।

मैं यह इंगित करने के लिए टैब का नाम बदलना चाहूंगा कि वे तार्किक रूप से क्या दर्शाते हैं:

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

टैब-आधारित लेबल पर डिफ़ॉल्ट रूप से टैब के साथ मैं ठीक हूं, जब तक कि टैब बन जाने के बाद मैं इसे बदलने के लिए स्वतंत्र हूं।

मैं विम में यह कैसे कर सकता हूं?


1
मेरे पास अभी प्रयोग करने का समय नहीं है, लेकिन देखें :help setting-tabline(एक टर्मिनल में विम के लिए) या :help setting-guitablabel(जीवीएम के लिए)। आप एक फ़ंक्शन लिख सकते हैं जो एक टैब-लोकल वेरिएबल के लिए चेक करता है और वह या कुछ डिफ़ॉल्ट रिटर्न करता है। फिर, एक टैब खोलने के बाद, :let t:mytablabel = 'homepage_template'
बेंजिफ़िशर

जवाबों:


15

टैबू नामक एक अच्छा सा प्लगइन है जो इसे आसान बनाता है। बस इसे स्थापित करें और फिर आप टैब का शीर्षक बदल सकते हैं:

:TabooRename My Tab Title

यदि आप अपना समाधान लिखने में रुचि रखते हैं तो आप उस प्लगइन के स्रोत कोड को देख सकते हैं।


Tabooशानदार है। TabooResetऔर TabooRenameटैब-लाइन के दो "मोड" का शाब्दिक अर्थ है ==> तबू द्वारा एक नामित टैब और विम के साथ एक ऑटो-नामित टैब। यह पूरी तरह से Tmux से " नामित विंडोज " की नकल करता है। बेहतर अभी भी, टैबू नाम के टैब को स्टार्टिज़ (या किसी अन्य सत्र-बचत उपकरण के तहत) का उपयोग करके बहाल किया जा सकता है ।
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'

यदि आप किसी टर्मिनल में vim का उपयोग कर रहे हैं, gvim नहीं, तो आपको 'tabline'इसके बजाय विकल्प सेट करना होगा 'guitablable'। यह थोड़ा अधिक जटिल है, क्योंकि आपको एकल अभिव्यक्ति की आवश्यकता है जिसमें सभी खुले टैब के लिए लेबल शामिल हैं। के तहत एक पूर्ण उदाहरण है

:help setting-tabline
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.