मैं एयरलाइन प्लगइन में स्थिति बार प्रतीकों को कैसे ठीक करूं?


64

मैंने कस्टम स्थिति पट्टी के लिए एयरलाइन प्लगइन स्थापित किया है , जैसा कि नीचे दिए गए चित्र में देखा गया है:

यहां छवि विवरण दर्ज करें

हालाँकि, मेरी स्थिति पट्टी प्रतीकों को प्रस्तुत कर रही है <, >>और <। मैं इस समस्या को कैसे हल करूं?

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


फ़ॉन्ट्स को ttf में बदलने के लिए सब कुछ ffonts.com/otf-to-ttf का उपयोग करें , उदाहरण: पुराने XShell संस्करण ओटीएफ का समर्थन नहीं करते हैं।
भठिया-परेरा

अधिकतम अनुकूलता के लिए मैं रवाना होता हूं airline_powerline_fonts। मुझे नहीं लगता कि वे वास्तव में उपयोगी हैं।
क्वीर

जवाबों:


50

वास्तव में मुझे समझ नहीं आ रहा है कि आपके प्रश्न को क्यों वोट दिया गया है। ईमानदारी से, मुझे भी समझ में नहीं आया कि इस अच्छे दिखने वाले टूलबार को पाने के लिए क्या किया जाना चाहिए। हां मैं README और अन्य सामान के बारे में जानता हूं, लेकिन मुझे लगता है कि मदद फ़ाइल में एक खंड getting startedया minimum settingsअनुभाग होना चाहिए ।

वैसे भी यहाँ सेटिंग्स हैं।

उपयुक्त फोंट स्थापित करना

आपको अपने सिस्टम में फोंट स्थापित करने की आवश्यकता होती है जैसे कि शाखाओं में बंटी, बड़े त्रिकोण आदि। वे मानक प्रतीक नहीं हैं, इसलिए आपको एक पैच फ़ॉन्ट स्थापित करने की आवश्यकता है। आप यहाँ ढेर सारे फोंट पा सकते हैं: https://github.com/powerline/fonts

.vimrc समायोजन

से :help airline-customization, अपने .vimrc फ़ाइल में इस कोड को जगह:

" air-line
let g:airline_powerline_fonts = 1

if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'

" airline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''

unicode symbolsअनुभाग यहाँ अनावश्यक है अगर आप पहले से ही एक समझौता फ़ॉन्ट है, लेकिन अगर तुम जो उपयुक्त प्रतीकों नहीं है अन्य फ़ॉन्ट का उपयोग करने की कोशिश यह आप एक अच्छे वापस आने देता है।

फ़ॉन्ट सेटिंग्स

यदि आप टर्मिनल में विम का उपयोग करते हैं, तो आपको अपने टर्मिनल की प्रोफाइल वरीयताओं में उपयुक्त फ़ॉन्ट पर स्विच करना चाहिए।

यदि आप Vim (MacVim, GVim) के gui संस्करण का उपयोग करते हैं, तो आपको .vimrcउदाहरण के लिए फ़ॉन्ट सेट करने की आवश्यकता है set guifont=DejaVu\ Sans:s12:। आप अधिक जानकारी यहाँ पा सकते हैं :help guifont


हैलो, अलेक्जेंडर। मैंने उनके निर्देशों का पालन किया, लेकिन फिर भी अपेक्षित परिणाम नहीं मिल सका: पहले तो पावरलाइन की साइट से फोंट स्थापित किया। फिर मैंने .vimrc फ़ाइल में सेटिंग की। मेरी .vimrc फ़ाइल को gist.github.com/geisonn/641f13543b8b41fe2c12 में साझा किया गया है । मैं Vundle प्रबंधक प्लगइन का उपयोग कर रहा हूं।
गीसन सैंटोस

क्या आपने अपने संपादक में वह फ़ॉन्ट स्थापित किया है? यदि आप टर्मिनल में विम का उपयोग करते हैं, तो आपको उस फ़ॉन्ट को टर्मिनल में स्थापित करना चाहिए, या यदि आप वीआईएम के संस्करण (मैकविम, जीवीम) का उपयोग करते हैं, तो आपको .vimrcउदाहरण के लिए -file में फ़ॉन्ट सेट करने की आवश्यकता है set guifont=DejaVu\ Sans:s12:। अधिक जानकारी आप यहां पा सकते हैं :help guifont
अलेक्जेंडर मायशोव

2
@AlexanderMyshov आप विन्यास लाइनों को दोहराया है, जहां हर दो में केवल दूसरे की आवश्यकता है।
विटोरियर

1
बस धन्यवाद करने के लिए vi.stackexchange पर यहाँ एक खाता बनाया है और आप के इस अद्भुत उत्तर को बढ़ाएँ। मुझे हजार खोजों से राहत देने के लिए धन्यवाद।
19

1
मुझे लगता है कि एक आरंभ या न्यूनतम सेटिंग अनुभाग होना चाहिए ... मुझे नहीं पता कि यह हटा दिया जाएगा या नहीं, लेकिन मैंने अपने जवाब के आधार पर विम-एयरलाइन विकी के लिए एक डमीज गाइड जोड़ा है ।
icc97

12

से README :

पावरलाइन फोंट के साथ एकीकरण

दिखने में अच्छा दिखने वाले पावरलाइन प्रतीकों के लिए, आपको एक पैच किए गए फ़ॉन्ट को स्थापित करना होगा। निर्देश आधिकारिक पावरलाइन प्रलेखन में पाए जा सकते हैं । Prepatched फोंट पॉवरलाइन -फोंट रिपॉजिटरी में पाए जा सकते हैं ।

अंत में, आप let g:airline_powerline_fonts = 1अपने vimrc में सुविधा चर जोड़ सकते हैं जो स्वचालित रूप g:airline_symbolsसे पॉवरलाइन प्रतीकों के साथ शब्दकोश को पॉप्युलेट करेगा ।


1
मैंने पाया कि let g:airline_powerline_fonts = 1पर्याप्त नहीं था। किसी कारण से यह अभी भी स्वचालित रूप से आबाद नहीं हुआ है g:airline_symbols, इसलिए मुझे अलेक्जेंडर मायशोव के उत्तर के अनुसार डिक्शनरी को मैन्युअल रूप से पॉप्युलेट करना पड़ा ।
ic9797

5

यह पता लगाने में घंटों लग गए, इसलिए यहां विंडोज के लिए एक विशेष खंड के साथ फेडोरा / उबंटू के लिए डमीज गाइड है।

पहला पता लगा रहा है कि नरक क्या अजीब हैं, लेकिन अच्छे कोण वाले कोष्ठक हैं जो विम-एयरलाइन स्थिति पट्टी में दिखाई देते हैं। पृष्ठभूमि यह है कि एयरलाइन पॉवरलाइन (जो कि अजगर थी) का शुद्ध विम संस्करण है, और उन कोण कोष्ठक को सम्मिलित करने के लिए पॉवरलाइन UTF-8 वर्णों का उपयोग करती है। इसलिए विम-एयरलाइन केवल UTF-8 वर्णों का उपयोग करती है।

फिर भी अगर आप एक स्थापित करने के लिए प्रबंधन करते हैं तो वे आपकी तुलना में बदसूरत दिखते हैं क्योंकि फोंट पूरी तरह से काम नहीं करते हैं।

विम को कॉन्फ़िगर करना

यह आधिकारिक निर्देशों के विपरीत है लेकिन मेरे पास अंत में यह थोड़ा गलत था जिसने मुझे सभी फ़ॉन्ट प्रतिष्ठानों पर सवाल खड़ा किया। इसलिए मेरा सुझाव है कि आप इसे पहले कॉन्फ़िगर करें और फिर अगर आपको काम करने वाले फोंट मिलते हैं तो इसे जादुई रूप से प्रदर्शित करना चाहिए।

अंतिम ट्रिक विम-एयरलाइन को अपनी जरूरत के फोंट का उपयोग करने के लिए मजबूर कर रही थी। में आधिकारिक दस्तावेज यह सिर्फ जोड़ने की जानी चाहिए let g:airline_powerline_fonts = 1अपने में .vimrc। हालांकि मैंने ऐसा किया और कोई किस्मत नहीं। इसमें अधिक जानकारी है :help airline-customizationऔर यह आपको कुछ सरल विन्यास सेटिंग्स देता है जो आपको चाहिए, बस मामले में। यह अंतिम जादू की चटनी थी जिसकी मुझे ज़रूरत थी। मुझे नहीं पता कि यह स्वचालित रूप से क्यों नहीं बनाया गया। अलेक्जेंडर माईशॉव के स्वीकृत उत्तर में उल्लिखित सेटिंग को कॉपी और पेस्ट करें

रसोई ने इसे फेडोरा और उबंटू में डूबो दिया

यह संभवतः एक ओवरकिल समाधान है, लेकिन पहले आपको इसे सरल बनाने से पहले इसे लगातार काम करने की आवश्यकता है।

  1. सामान्य पावरलाइन फ़ॉन्ट sudo dnf install powerline-fonts(या sudo apt install fonts-powerline) स्थापित करें - इसका मतलब यह होना चाहिए कि आप पहले से स्थापित किसी भी फ़ॉन्ट का उपयोग कर सकते हैं। यदि आपके पास dnf / apt की तरह स्थापित करने का एक आसान तरीका नहीं है, तो मैन्युअल रूप से इसे करने के लिए निर्देश हैं जैसे https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim.and -बेश / , भी आधिकारिक दस्तावेज में निर्देश ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ) है।

    अब अपने टर्मिनल को फिर से खोलें और जांचें कि यदि आप टर्मिनल वरीयताओं को संपादित करते हैं और एक कस्टम फ़ॉन्ट सेट करते हैं तो पावरलाइन प्रतीक फ़ॉन्ट उपलब्ध है। आप सीधे फ़ॉन्ट का उपयोग नहीं करना चाहते हैं, बस यह जांचें कि यह उपलब्ध है । अब विम खोलने का प्रयास करें और देखें कि क्या आपके पास अच्छे प्रतीक हैं।

  2. यदि सामान्य पावरलाइन फ़ॉन्ट काम नहीं करता है या यदि आप उन चीजों को बेहतर बनाने की कोशिश कर रहे हैं जो आप व्यक्तिगत 'पैच' फोंट स्थापित करने की कोशिश कर सकते हैं, तो यह पता लगाने में थोड़ा समय लगता है, लेकिन आप शाब्दिक रूप से उस फ़ोल्डर में जा सकते हैं जिसे आप https में चाहते हैं : //github.com/powerline/fonts/ और इसे डाउनलोड करें, जो फ़ॉन्ट मैंने अपने परीक्षणों से सबसे ज्यादा पसंद किया है वह है सोर्स कोड प्रो पैचवर्क फ़ॉन्ट । फिर बस डाउनलोड की गई फ़ॉन्ट फ़ाइल खोलें और 'इंस्टॉल' पर क्लिक करें।

    यदि आप कमांड लाइन के बजाय, आप सभी पैच फोंट स्थापित कर सकते हैं :

     $ git clone https://github.com/powerline/fonts.git --depth=1
     $ fonts/install.sh
     $ rm -rf fonts
    

    यह सभी पैच किए गए मोनो फोंट स्थापित करेगा , लेकिन फिर यह आपको संभावित फोंट का पता लगाने का मौका देता है। फ़ॉन्ट सूची जो इसे स्थापित करता है, उपलब्ध स्रोत कोड फोंट की एक बहुत बढ़िया सूची है। इसका मतलब यह भी है कि आपको इसमें शामिल होने वाले प्रत्येक अलग-अलग फोंट को स्थापित करने की आवश्यकता नहीं है।

  3. जांचें कि फ़ॉन्ट को प्राथमिकताओं में निर्दिष्ट किया जा सकता है, यदि आप फोंट गायब हैं तो अपने टर्मिनल सत्र को फिर से खोलें, इसलिए ध्यान दें कि यहां दो विकल्प हो सकते हैं:
    1. सामान्य पॉवरलाइन फ़ॉन्ट काम कर रहा है जिस स्थिति में आप बस बेस फॉन्ट जैसे डीजावु सैंस मोनो का उपयोग कर सकते हैं
    2. यदि आप उस फॉन्ट किए गए फॉन्ट को काम नहीं कर सकते हैं, जिसे आपने ऊपर डाउनलोड किया है, तो यह सही होना चाहिए जैसे कि DejaVu के लिए बराबर 'पावरलाइन के लिए DejaVu Sans Mono' है।

ट्वीकिंग लिनक्स

एक बार जब मैं वास्तव में पहली बार काम कर रहा था, तो यह वास्तव में निराशाजनक था क्योंकि आइकन पूरी तरह से मेल नहीं खाते थे। लेकिन अक्सर पूछे जाने वाले प्रश्नों के अनुसार हमें कुछ ट्विकिंग करने की आवश्यकता होती है। मैंने इनकंसोलटा के साथ शुरुआत की क्योंकि यह मुझे विंडोज और लिनक्स पर एक सुसंगत फ़ॉन्ट देता है। आप उबंटू पर सामान्य फ़ॉन्ट आसानी से स्थापित कर सकते हैं apt install fonts-inconsolataयह वही है जो मुझे मिला है:

यहाँ छवि विवरण दर्ज करें

तीर बहुत बड़े हैं और बदसूरत तरीके से ऊपर स्थानांतरित कर दिए गए हैं।

फिर मैंने अन्य सभी डिफ़ॉल्ट उबंटू फोंट की कोशिश की।

उबंटू मोनो:

यहाँ छवि विवरण दर्ज करें

देजवु सों मोनो:

यहाँ छवि विवरण दर्ज करें

यह ऊर्ध्वाधर स्थिति सही है लेकिन दाहिने हाथ की ओर के तीरों में उनके बाद एक स्थान है।

आप पैच किए गए फोंट का उपयोग क्यों करते हैं

डिफ़ॉल्ट फ़ॉन्ट का उपयोग करने से मौजूदा फ़ॉन्ट को स्वचालित रूप से पैच करने के लिए पावरलाइन फ़ॉन्ट पर निर्भर करता है। हालाँकि आप पैच किए गए फॉन्ट का उपयोग करके एयरलाइन के प्रतीकों के रूप में सुधार कर सकते हैं। ये पैच फॉन्ट का उपयोग करने वाले समतुल्य हैं।

मैं इन सभी को फ़ॉन्ट आकार 16 में प्रदर्शित करता हूं क्योंकि मैं एक बड़े फ़ॉन्ट का उपयोग करना पसंद करता हूं, साथ ही यह मामूली मुद्दों को दिखाता है।

पावरलाइन के लिए इनकंसोलटाटा:

यहाँ छवि विवरण दर्ज करें

यह अभी भी समस्या है, लेकिन वे लगभग सभी dz भिन्नता से हल कर रहे हैं।

Inconsolata-dz पॉवरलाइन dz के लिए:

यहाँ छवि विवरण दर्ज करें

यह दाहिने हाथ की ओर तीर पर एक हेयरलाइन फ्रैक्चर है, लेकिन अन्यथा एकदम सही है।

उबंटू मोनो व्युत्पन्न पावरलाइन नियमित:

यहाँ छवि विवरण दर्ज करें

यह अभी भी कष्टप्रद मुद्दे हैं।

पावरलाइन बुक के लिए देजावु संस मोनो:

यहाँ छवि विवरण दर्ज करें

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

इन नियमित के शीर्ष पर, मैंने लगभग सभी उपलब्ध फोंट की कोशिश की और मेरा दूसरा पसंदीदा स्रोत कोड प्रो था।

पावरलाइन माध्यम के लिए स्रोत कोड प्रो

यहाँ छवि विवरण दर्ज करें

इसमें 16 आकार के मुद्दे हैं जहां तीर बहुत बड़े हैं, लेकिन 14 आकार में यह लगभग ध्यान देने योग्य नहीं है। शाखा और LN आइकन नीचे की ओर ओवरफ्लो करते हैं, लेकिन किसी तरह यह मुझे परेशान नहीं करता है।

पावरलाइन लाइट के लिए सोर्स कोड प्रो

यहाँ छवि विवरण दर्ज करें

यह लगभग पूरी तरह से मध्यम फ़ॉन्ट के तीर के आकार के मुद्दों को हल करता है और इसे सही के बारे में बनाता है, हालांकि अभी भी आइकन अतिप्रवाह है।

स्रोत कोड प्रो

जब मैं फोंट के विकल्पों की जांच कर रहा था, तो कुछ चीजें हैं जो आप नोटिस करते हैं, कुछ फॉन्ट पैच विवरण में पूर्ण न्यूनतम हैं, अगर आप इसकी तुलना सोर्स कोड प्रो सूची से करते हैं तो यह काफी महत्वपूर्ण है। सोर्स कोड प्रो एक बहुत विस्तृत और पूर्ण फ़ॉन्ट है जिसे परिदृश्यों की एक बड़ी श्रृंखला में काम करने के लिए माना गया है। किनारे के मामलों के लिए इस तरह की पूर्णता मायने रखती है।

एक पैच फॉन्ट के रूप में उपयोग किया जाता है यह लगभग पूरी तरह से विम-एयरलाइन बार प्रदर्शित करता है। इतने सारे विकल्पों का लाभ प्रकाश फ़ॉन्ट का उपयोग होता है जिसमें विम-एयरलाइन बार का बेहतर प्रदर्शन होता है।

स्रोत कोड प्रो भी Adobe के Github भंडार पर निरंतर खुले विकास के तहत है

विंडोज के नाजुक फूल को संभालना (जीवीएम को संभालने)

Powerline फ़ॉन्ट Windows के साथ काम नहीं करता है इसलिए आपकी एकमात्र पसंद एक पैच किए गए फ़ॉन्ट का उपयोग करना है। इसके अलावा सभी फोंट को स्थापित करने के लिए बैश स्क्रिप्ट काम नहीं करती है, इसलिए आपको ऐसा ही करना होगा, git cloneलेकिन फिर प्रत्येक अलग-अलग निर्देशिकाओं में जाएं और इच्छित फ़ॉन्ट इंस्टॉल करें।

मैंने सभी स्रोत कोड प्रो डाउनलोड किए फोंट को डाउनलोड किया और उन्हें स्थापित किया। भले ही आप उन्हें अलग-अलग फॉन्ट के रूप में स्थापित करते हैं, लेकिन वे वजन को निर्दिष्ट करने के लिए एक अलग विशेषता के साथ एक एकल फॉन्ट 'सोर्स कोड प्रो फॉर पॉवरलाइन' के रूप में विंडोज में जुड़ जाते हैं।

तब ( GVim को मानते हुए ) इसे अपने में जोड़ें .vimrc:

set guifont=Source\ Code\ Pro\ for\ Powerline:h15:cANSI

यदि आप 'लाइट' फॉन्ट का उपयोग करना चाहते हैं तो इसका उपयोग करें।

set guifont=Source_Code_Pro_Light:h15:cANSI

इसका बहुत मतलब नहीं है क्योंकि इसमें 'पॉवरलाइन के लिए' को शामिल करने की आवश्यकता नहीं है, लेकिन यह है कि यह कैसे काम करता है (मैंने GVim में फ़ॉन्ट सेट करके और फिर set guifont?GVim का उपयोग क्या है यह जांचने के लिए किया)। इसके अलावा मैंने देखा कि जब आप फ़ॉन्ट स्विच करने के लिए GVim का उपयोग करते हैं, तो फ़ॉन्ट रेंडरिंग बहुत अच्छा नहीं है। मैंने शुरू में लाइट फॉन्ट को छूट दी क्योंकि जब मैंने GVim मेनू का उपयोग करके स्विच किया तो यह बुरी तरह से प्रस्तुत हुआ, लेकिन यदि आप नीचे दिए गए को अपने में रखते हैं .vimrcऔर GVim को पुनरारंभ करते हैं तो यह प्यारा दिखना चाहिए।

इसके अलावा एक अच्छी बात यह है कि आप अपने DOS / Powershell को उसी फ़ॉन्ट पर सेट कर सकते हैं। फिर पैच फॉन्ट के साथ डॉस के भीतर रेगुलर वीआईएम में पावरलाइन काम करना भी संभव है।

यदि आप मुझ पर विश्वास नहीं करते हैं, तो यहां पॉवर्स में विम में काम कर रहे हैं:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


3

विम को फिर से स्थापित करने के बाद मेरे पास एक ही मुद्दा था: मेरे पुराने पैच फोंट नए एयरलाइन प्रतीकों के साथ संगत नहीं थे।

पुराने प्रतीकों की मदद में भी उल्लेख किया गया है ( :help airline-customization):

" old vim-powerline symbols
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'

के बाद मैं अपने vimrc में इन लाइनों डाल सब कुछ ठीक हो गया।


upvoted! वर्तमान में मेरे लिए सबसे अच्छा है, बस ये प्रतीक थोड़ा अधिक हैं
रेनस

1
आपको पहले शब्दकोश को परिभाषित करने की आवश्यकता है: let g: एयरलाइन_symbols = {}
PerseP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.