सक्रिय विंडो को अधिक स्पष्ट बनाना


22

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

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

लेकिन इसका मतलब यह है कि जब मैं बफ़र्स बदलता हूं तो मेरा कोड बाएं या दाएं कूदता है, जो कि कष्टप्रद है। इसके अलावा, मैं एक निष्क्रिय बफर में भी जो लाइन 94 है देखने के लिए सक्षम होना चाहते हैं । तो क्या सक्रिय बफर में लाइन संख्याओं के रंग बदलने का कोई तरीका है?

जवाबों:


26

अपने टेम्प्लेट के बाद, आप विभिन्न गुणों को अलग-अलग कर सकते हैं, जैसे कि colorcolumn:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set colorcolumn=80
    autocmd WinLeave * set colorcolumn=0
augroup END

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

एक और भी कम दखल देने वाला विकल्प, यदि आप वर्तमान लाइन (सेट अपराध) को उजागर करने के लिए उपयोग किए जाते हैं, तो यह करना है:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set cul
    autocmd WinLeave * set nocul
augroup END

यह सब आपके उपयोग के लिए आता है और आप क्या करने के लिए तैयार हैं।


11

स्टेटसलाइन का रंग यह जानने का सबसे सामान्य तरीका है कि कौन सी विंडो सक्रिय है। यह इन दो पंक्तियों के साथ आपके कलरकेम में परिभाषित किया गया है:

hi StatusLine   ctermfg=15  guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none

पहला वर्तमान विंडो के लिए है, दूसरा "गैर-वर्तमान" विंडो के लिए है।

यह xoria256 का एक अंश है , आपको रंगों को अपने colorcheme में अनुकूलित करना चाहिए।

लेकिन आप ऐसा कुछ कर सकते हैं (सावधान रहें, दूसरी पंक्ति में रंग पूरी तरह से यादृच्छिक हैं):

augroup NrHighlight
  autocmd!
  autocmd WinEnter * hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
  autocmd WinLeave * hi LineNr ctermfg=274 guifg=#e9e9e9 ctermbg=133 guibg=#212121
augroup END

मैं पहले से ही WinNnter / WinLeave पर प्रकाश डालने वाले LineNr को बदलने की कोशिश कर चुका था, लेकिन ऐसा प्रतीत होता है कि LineNr रंग वैश्विक है।
DrHyde 14

हां, और मुझे यह याद करने के लिए आपकी टिप्पणी का इंतजार करना होगा। तो, नहीं, अगर LineNr वैश्विक है तो स्पष्ट रूप से इसे एक विशिष्ट विंडो में बदलने का कोई तरीका नहीं है। क्या आपको नहीं लगता कि स्टेटसलाइन पर्याप्त है?
रोमन

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

मैं वास्तव में इसे पसंद करूंगा यदि आप विंडो बैकग्राउंड का रंग बदल सकते हैं, लेकिन ऐसा लगता है कि ऊपर से, यह संभव नहीं है।
जोनाथन हार्टले

उपयोग करना hi StatusLine...और hi StatusLineNC...एक आकर्षण की तरह काम करता है!
ल्यूक एम


2

मैं यह करता हूं:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set relativenumber
    autocmd WinLeave * set norelativenumber
augroup END

संबंधित संख्याएँ कमांड की रिपीट राशि की गणना के लिए सिर्फ एक सहायता हैं, आपके द्वारा संपादित नहीं की जा रही विंडो में उनके लिए कोई उपयोग नहीं है।



1

आप इसे अपने साथ जोड़ सकते हैं ~/.vimrc, जो निष्क्रिय खिड़कियों की स्थिति सलाखों को सक्रिय विंडो की सफेद स्थिति पट्टी से अलग करने के लिए एक गहरे भूरे रंग की पृष्ठभूमि बनाएगा।

highlight StatusLineNC cterm=bold ctermfg=white ctermbg=darkgray

इस स्क्रीनशॉट उदाहरण देखें। बीच की खिड़की सक्रिय है (सफेद स्थिति पट्टी)। बाईं और दाईं खिड़कियां निष्क्रिय (डार्क ग्रे स्टेटस बार) हैं।

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

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