वर्णों के रूप में टैब प्रदर्शित करना


119

जब मैं अजगर में फाइलों पर काम करता हूं, तो मैं कभी-कभी रिक्त स्थान और इसके विपरीत टैब की गलती करता हूं। क्या कोई तरीका है जिससे मुझे टैब के बजाय टैब के लिए एक चरित्र प्रदर्शित करने के लिए विम मिल सकता है?


एक साइड नोट के रूप में, आप retabहर बार फ़ाइल को सहेजने के साथ सभी टैब को रिक्त स्थान में बदलने के लिए कॉन्फ़िगर कर सकते हैं ।
0xc0de

यदि आपने vim-faq स्थापित किया है , तो आप वहां ऑफ़लाइन उत्तर प्राप्त कर सकते हैं: :h vim-faqऔर खोज करें /invisible। टैग को याद रखना कठिन है :h faq-19.8
होट्सचेक

जवाबों:


119

हाँ, सूचीचरों का उपयोग करें:

set list
set listchars=tab:>-

यदि आप इन दो लाइनों को अपने .vimrc में रखते हैं, तो टैब को >आरंभिक स्थिति के लिए और -शेष टैब के माध्यम से दिखाया जाएगा ।

(Sidenote: listchars भी साथ रिक्त स्थान अनुगामी दिखा सकते हैं trail:x(की जगह x। चरित्र आप पीछे अंतरिक्ष) है, जो रूप में अच्छी तरह उपयोगी हो सकता है के लिए उपयोग करना चाहते हैं के साथ)


6
नोट: मुझे उपयोग करना पसंद है set listchars=tab:!·,trail:·, IMHO ·एक बहुत से स्पष्ट है -... आपको btw काम करने के लिए इसके लिए काफी हाल ही में संस्करण की आवश्यकता है (निश्चित रूप से जो वास्तव में, मुझे लगता है कि मैं 7.3.x) ...
मार्टिन Tournoij

8
मुझे यूनिकोड चरित्र का उपयोग करना पसंद है क्योंकि यह उससे थोड़ा छोटा है >। वर्तमान में मैं ईओएल को चिह्नित करके सफेद स्थान को पीछे छोड़ता हूं (हालांकि मैं ऊपर की कोशिश कर सकता हूं)। मेरी सेटिंग्स हैं: set listchars=eol:¬,tab:▸\ और
मार्टिन यॉर्क

58

मूल उत्तर है :set list, जो टैब को प्रदर्शित करता है ^I

हालांकि, मैं उससे आगे जाने की सलाह देता हूं। बस इसमें :set listसमस्या है कि यह स्क्रीन पर दृश्य संरेखण को संरक्षित करने में विफल रहता है। उदाहरण के लिए:

%.o: %.cpp
^Ig++ -c $<

अच्छा नहीं लगता है, खासकर जब आप उम्मीद gके g++पहले के अंतर्गत दिखाई देने pकी cpp(यह मानते हुए tabstop=8)।

इसलिए, मेरा सुझाव है कि .vimrcआप में कुछ ऐसा है :set listchars=tab:␉· (स्पष्ट होने के लिए, यह यूनिकोड वर्ण U + 2409 SYMBOL FOR HORIZONTAL TABULATION है जिसके बाद U + 00B7 MIDDLE DOT है ।)

जैसा कि समझाया गया है :help listchars, tab:xyदृश्य संरेखण को संरक्षित करने के कारणों के लिए दो-वर्ण सेटिंग :

tab:xy        Two characters to be used to show a tab.  The first
              char is used once.  The second char is repeated to
              fill the space that the tab normally occupies.
              "tab:>-" will show a tab that takes four spaces as
              ">---".  When omitted, a tab is show as ^I.

उपरोक्त उदाहरण स्क्रीन पर दिखाई देगा:

%.o: %.cpp
␉·······g++ -c $<

व्यक्तिगत रूप से, मैं अपने साथ ऑल-आउट जाता हूं listchars:

:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵

ये पात्र पर्याप्त रूप से विशिष्ट हैं कि वे दस्तावेज़ पाठ में शायद ही कभी दिखाई देते हैं।

इन विशेष वर्णों को अपने vimrcमें टाइप करने के लिए, Ctrl-vu23CEइन्सर्ट मोड में टाइप करें, जैसा कि समझाया गया है :help utf-8-typing


2
इन्हें भी देखेंset lcs=tab:├─
sch

यह बस मुझे एक दिया EOL पर
WendyG

14

हाइलाइटिंग टैब

अस्थायी Tabप्रकाश डाला

कभी-कभार उपयोग के लिए, कोई दस्तावेज़ में सभी टैब को निम्न खोज /कमांड का उपयोग करके उजागर कर सकता है :

/\t

हाइलाइटिंग को हटाने के लिए, बस टाइप करें- :nohजो :nohlsearchउच्च प्रकाश व्यवस्था के लिए छोटा है ।

स्थायी Tabप्रकाश डाला

" Highlight tabs as errors.
" https://vi.stackexchange.com/a/9353/3168
match Error /\t/

टैब विम में हाइलाइटिंग

अधिक प्रकाश डाला

इनमें से अधिक उपयोगी हाइलाइटिंग कमांडों के लिए - जिसमें पीछे की तरफ व्हॉट्सएप के साथ संयुक्त और इसे स्थायी बनाने के लिए- विम विकी देखें


4
आप :match Error /\t/स्वतंत्र रूप से खोज रजिस्टर और hlsearch ( :matchइसे साफ़ करने के लिए प्रकार) से टैब (या उस मामले के लिए कोई अन्य पैटर्न) को उजागर करने के लिए भी उपयोग कर सकते हैं ।
22

1
@Carpetsmoker एक अनचाहे स्थानों को उजागर करने के बारे में विम विकी पर इन उपयोगी हाइलाइटिंग कमांड (ट्रेलिंग व्हाट्सएप के साथ संयुक्त सहित) की एक पूरी बहुत कुछ पा सकता है ।
सर्ज स्ट्रोबोबांट

9

मुझे व्यक्तिगत रूप से प्लगइन इंडेंटलाइन का उपयोग पसंद है , जो इंडेंटेशन स्तरों पर एक ऊर्ध्वाधर रेखा प्रदर्शित करता है।

यह विशेष रूप से अजगर में बहुत मदद करता है, जहां इंडेंटेशन महत्वपूर्ण है।

(ऊपर दिए गए लिंक से लिया गया चित्र)

अन्य बातों के अलावा, यह एक टॉगल कमांड प्रदान करता है, जिसे एक कुंजी संयोजन में मैप किया जा सकता है, ताकि आप इसे बंद कर सकें, जब आपको इसकी आवश्यकता न हो।


2
मेरा मानना ​​है कि यह प्लगइन हालांकि इंडेंट करने वाले स्थानों के लिए है?
जेक बायमन

5

आप नियमित टर्मिनल और gvim में अलग-अलग टैब दिखाना चाह सकते हैं।

set list!
if has('gui_running')
    set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
    set listchars=tab:>.,trail:.,extends:\#,nbsp:.
endif

(पूर्णता के लिए जोड़ना, यदि अन्य इसे उपयोगी पाते हैं)।


4

सबसे आसान तरीका है :set list, जो ^Iकि रेखा के रूप में और अंत में टैब दिखाएगा $

मुझे कॉल करने वाली मैपिंग का उपयोग करना पसंद है

:set invlist 

नियमित प्रदर्शन और सूची प्रदर्शन के बीच टॉगल करें।

उदाहरण के लिए:

:nmap <leader>l :set invlist<cr>

यह मुझे जल्दी से जांच करने की अनुमति देता है कि क्या टैब बनाम अंतरिक्ष समस्याएं हैं और फिर एक नियमित प्रदर्शन पर वापस जाएं।

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