मेरे vimrc में कस्टम हाइलाइट्स क्यों साफ़ हो जाते हैं या डिफ़ॉल्ट पर रीसेट हो जाते हैं?


10

मैं %1*उदाहरण के साथ अपनी स्थिति का () हिस्सा उजागर करना चाहूंगा :

set statusline=%1*%f%0*
highlight User1 ctermbg=0 ctermfg=10 cterm=bold

हालांकि, यह हमेशा "खाली" (डिफ़ॉल्ट टर्मिनल रंग) के रूप में दिखाई देता है:

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

यदि मैं टाइप करता हूं :highlight User1, तो यह दिखाता है User1 xxx cleared, और यदि मैं :highlight User1 ctermbg=0 ctermfg=10 cterm=boldकमांड विंडो में टाइप करता हूं , तो यह काम करने लगता है।

मैं इसे अपनी .vimrcफ़ाइल में कैसे डाल सकता हूँ ?

मेरी पूरी vimrc फ़ाइल जिसका मैंने परीक्षण के लिए उपयोग किया है:

set nocompatible
set background=light
colorscheme default
set laststatus=2
set statusline=%1*%f%0*

highlight User1 ctermbg=0 ctermfg=10 cterm=bold

जवाबों:


13

समस्या यह है कि बहुत से (सभी?) कलरकेम highlight clearअपने स्वयं के रंगों को स्थापित करने से पहले सभी पर प्रकाश डालेंगे । उदाहरण के लिए /usr/share/vim/vim74/colors/peachpuff.vim:

" First remove all existing highlighting.
set background=light
hi clear
if exists("syntax_on")
  syntax reset
endif

let colors_name = "peachpuff"

hi Normal guibg=PeachPuff guifg=Black

hi SpecialKey term=bold ctermfg=4 guifg=Blue
" ... Many more highlights follow ...

यह समूहों को भी साफ करता है User1..9(जो कि बहुत मायने नहीं रखता है, IMHO)।

इसका हल यह है कि कस्टम User1..9हाइलाइट को ColorSchemeऑटोकैड में रखा जाए। से :help ColorScheme:

रंग योजना लोड करने के बाद। :colorschemeपैटर्न को कलरकेम नाम के विरुद्ध मिलान किया जाता है। <afile>वास्तविक फ़ाइल के नाम के लिए इस्तेमाल किया जा सकता है जहाँ यह विकल्प सेट किया गया था, और <amatch>नए colorcheme नाम के लिए।

इसलिए "नंगे" highlightकमांड का उपयोग करने के बजाय , उपयोग करें:

autocmd ColorScheme *
        \ highlight User1 ctermbg=0 ctermfg=10 cterm=bold |
        \ highlight User2 ctermbg=0 ctermfg=9 cterm=bold

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

autocmd ColorScheme colorscheme_one_name  highlight User1 ctermbg=0 ctermfg=10 cterm=bold
autocmd ColorScheme another_scheme        highlight User1 ctermbg=0 ctermfg=11 cterm=bold

रंगों को विशिष्ट रंगों के मेल से मिलता है।

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