क्या विम में विभाजित विभाजक एक पूर्ण स्तंभ चौड़ा से कम हो सकता है?


21

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

हालांकि यह दृश्य असंगति का एक सा बनाता है जहां सबसे स्पष्ट रूप से विभाजन स्पष्ट रूप से कम से कम महत्वपूर्ण है।

  • Xorg window | | ›विंडो = कुछ भी नहीं
  • Tmux pane |> pane = 1px विभक्त रेखा
  • विम स्प्लिट |> स्प्लिट = 1 वर्ण चौड़ा रंगीन कॉलम

यहाँ एक नमूना दिखाया गया है जो एक-एक करके साइड विंडो, पैन और विम विभाजन को दर्शाता है:

विंडोज़ पैन और विभाजन

यहां तक ​​कि पूर्ण रिज़ॉल्यूशन संस्करण पर क्लिक किए बिना, आपके द्वारा देखी जाने वाली सफेद डिवाइडर लाइन स्क्रीन पर कम से कम महत्वपूर्ण विभाजन है, विम पैन। (नोट vim सत्र के दाईं ओर ग्रे कॉलम वास्तव में एक 80 वां कॉलम हाइलाइट है, न कि किसी भी प्रकार का विभक्त, हालांकि मैं अक्सर उस आकार पर काम करता हूं।)

मुझे पता है कि विभाजन में खींचे गए चरित्र को कैसे बदलना है या रंग योजना के विपरीत को कम करना है। मैं जो करना चाहूंगा, उसी विभाजन पट्टी का उपयोग tmux के रूप में करें जो किसी भी चौड़ाई को नहीं लेता है क्योंकि यह एक के बजाय स्तंभों के बीच खींची गई है। क्या यह टर्मिनल आधारित विम के साथ संभव है? जाँचने? Neovim? नेत्रहीन विनीत विभाजक बनाते हुए, क्या विभक्त स्तंभ पूरी तरह से बंद हो सकता है?

PS एक समान रूप से विभाजक का उपयोग करने का कारण समझ में आता है, क्योंकि मैं उसी कुंजी-बाइंडिंग का उपयोग tmux panes और vim विभाजन के बीच नेविगेट करने के लिए करता हूं। एक ही कुंजी उनके बीच मूल रूप से नेविगेट करती है, यह केवल तभी समझ में आता है यदि दृश्य सीमाएं समान थीं।

जवाबों:


32

आप tmux के बारे में गलत हैं। प्रत्येक टर्मिनल-आधारित कार्यक्रम की तरह - विम सहित - यह केवल कोशिकाओं के अंदर सामान खींचता है । इसका मतलब यह है कि विम और tmux दोनों ऊर्ध्वाधर सीमाओं को खींचने के लिए एक ही विधि का उपयोग करते हैं: वे बस एक पाइप-जैसे चरित्र का उपयोग करते हैं।

Tmux का उपयोग करता है ( U+2502) डिफ़ॉल्ट जबकि विम का उपयोग करता है के द्वारा |( U+007C)।

यदि आप विम में समान विभाजक चाहते हैं, तो आप बस उसी वर्ण का उपयोग कर सकते हैं:

set fillchars+=vert:│

ध्यान दें कि आपका colorcheme संभवतः ऊर्ध्वाधर विभाजन की पृष्ठभूमि-रंग सेट करता है। यदि ऐसा है, तो आप सीधे अपने colorcheme में पृष्ठभूमि-रंग को हटा सकते हैं:

hi VertSplit ctermbg=NONE guibg=NONE

मैं आपको इस निष्कर्ष पर लगभग एक मिनट तक हराता हूं , लेकिन फिर भी धन्यवाद। मुझे यकीन नहीं है कि मैंने कभी अन्यथा क्यों मान लिया। मुझे लगता है कि मैं इस धारणा के तहत था कि यह चरित्र अंतरिक्ष के किनारे में विभाजक को ओवरले करने के लिए जादू के संयोजन के यूनिकोड चरित्र के कुछ प्रकार कर रहा था, लेकिन मुझे अब एहसास हुआ कि मैं इसके बारे में सोचता हूं कि यह कितना हास्यास्पद होगा।
कालेब

1
मुझे इस बात की आवश्यकता है कि मुझे अपने मामले में क्या चाहिए hi VertSplit cterm=NONEक्योंकि यह reverseएक डिफ़ॉल्ट के रूप में है।
लोईकी

किसी भी संयोग से आप जानते हैं कि tmux विभाजकों को ',' से, कहने, '/' में कैसे बदलना है? @romainl
klaus

@EnanAjmain IIRC मैंने अपने स्रोत कोड में tmux विभाजक पाया। मुझे नहीं लगता कि इसके लिए कोई विकल्प है, लेकिन मैं एक tmux विशेषज्ञ से बहुत दूर हूं इसलिए आपको मैनुअल जांच करनी चाहिए।
रोमेनैल

@romainl मुझे लगता है कि तुम सही हो। जो कुछ भी मैं tmux को बदलने में सक्षम था, मुझे सोर्स कोड हैक करना था।
klaus

5

नहीं, यह विम में नहीं किया जा सकता है, और शायद जीवीआईएम में लागू करने के लिए बहुत कठिन होगा।

टर्मिनल में प्रयुक्त सेल आधारित पते पर विम चिपक जाता है; एक बफर के भीतर, यह j/ के साथ लगातार ऊर्ध्वाधर नेविगेशन के लिए महत्वपूर्ण है k। सेल-आधारित x और y निर्देशांकों द्वारा यह संबोधित करना विम के कार्यान्वयन में इतना निपुण है, मुझे लगता है कि इसे पार करना बहुत कठिन है।

यह भी नोट करें :help design-not:

  • विम एक फैंसी जीयूआई संपादक नहीं है जो सभी प्लेटफार्मों पर कम सुसंगत होने की कीमत पर अच्छा दिखने की कोशिश करता है।

5

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

बहुत लगभग एक ही प्रभाव आरसी फ़ाइल में निम्नलिखित लाइनों की तरह कुछ जोड़कर विम में संभव है:

" Set split separator to Unicode box drawing character
set encoding=utf8
set fillchars=vert:│

" Override color scheme to make split the same color as tmux's default
autocmd ColorScheme * highlight VertSplit cterm=NONE ctermfg=Green ctermbg=NONE

autocmdयदि आप रंग योजनाओं को स्विच करते हैं तो गारंटी का उपयोग हाइ-राइड पर रहता है। आप इस व्यवहार को चाह सकते हैं या नहीं कर सकते हैं क्योंकि कुछ रंग योजना में इस रंग समूह के लिए समझदार मूल्य हैं।

यह भी ध्यान रखें कि cterm=NONEकुछ रंग योजनाओं को ओवर-राइड करने के लिए आवश्यक है जो इस मान को सेट करते हैं reverse, आप जो भी fg / bg मानों का उपयोग करने की कोशिश करते हैं उनके साथ खिलवाड़ करें।

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