अंडरलाइन नहीं होने के लिए मैं अपनी विम हाइलाइट लाइन कैसे बदलूं?


91

कुछ रंगों में वर्तमान पृष्ठभूमि को उजागर करने वाली वर्तमान रेखा, दूसरों में, रेगिस्तान की तरह, वर्तमान रेखा को रेखांकित किया गया है।

मैं अंडरलाइनिंग के बजाय एक अलग पृष्ठभूमि के रंग का उपयोग करने के लिए रेगिस्तान में हाइलाइटिंग की वर्तमान लाइन को बदलना चाहता हूं। मैं उसे कैसे कर सकता हूँ?

मेरा .vimrc:

set cursorline
highlight Cursorline cterm=bold

अद्यतन: .vimrcजो समस्या को हल करता है

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

7
शायद सवाल के दुर्भाग्यपूर्ण शब्दों के कारण। मैंने बयान को स्पष्ट करने के लिए इसे फिर से लिखने की स्वतंत्रता ली, और नकारात्मक वोट को भी बेअसर कर दिया।
ib।

जवाबों:


92
color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desertआपका कलर्सकेम है। (पहले आना चाहिए)
इसे अपने में रखें~/.vimrc


4
यदि आप vimrc में उन पंक्तियों के बाद एक colorcheme लोड कर रहे हैं, तो नया colorcheme चीजों को साफ़ कर सकता है। Vimrc में डालने की कोशिश करने से पहले विम कमांड लाइन पर टेस्ट करें।
हर्बर्ट सिट्ज

मुझे पता है कि इसे कैसे ठीक करना है। आपके कोड में हमें अंडरलाइन को बोल्ड में बदलना चाहिए!
राख डेम

3
@ इडीगास colorका संक्षिप्त नाम हैcolorscheme
kev

1
यह gvim या vim-gtk में अच्छा काम करता है। लेकिन टर्मिनल विम में यह केवल वर्तमान लाइन से अंडरलाइन को हटाता है। यह वर्तमान रेखा को उजागर नहीं करता है (कम से कम मेरे लिए नहीं!)।
ओमिड कमांगर

66

यह मेरे लिए बेहतर (हर टर्मिनल में) काम करता है।

:hi CursorLine   cterm=NONE ctermbg=darkred ctermfg=white

यह टर्मिनल के लिए रंग की स्थापना कर रहा है: पृष्ठभूमि रंग - ctermbg , और पाठ रंग - ctermfgचित्रमय विंडो में उपयोग के लिए, पैरामीटर जोड़ेंguibg=darkred guifg=white

आप कमांड का उपयोग करके संबंधित कॉलम को भी हाइलाइट कर सकते हैं:

:set cursorcolumn

संपादक में एक कुंजी दबाकर हाइलाइटिंग को चालू और बंद करना उपयोगी है। इन लाइन को अपने vimrc में जोड़ें :

:nnoremap H :set cursorline! cursorcolumn!<CR>

टाइप करने पर 'H' हाइलाइटिंग चालू और बंद हो जाएगा (यदि आप चाहें तो इसे किसी अन्य कुंजी पर मैप करें)

आप लेख में अधिक जानकारी पा सकते हैं: http://vim.wikia.com/wiki/Highlight_current_line


9
और cterm=NONEवह सेटिंग है जो अंततः कर्सर लाइन के अंडरलाइन (मेरे मामले में) को हटा देती है।
tbloncar

1
Hडिफ़ॉल्ट रूप से बफर के शीर्ष पर जाने के लिए उपयोग किया जाता है।
quapka

20

टर्मिनल में gvim में मिलने वाली शैली के समान, वाक्य रचना हाइलाइट को संरक्षित करते हुए:

" first thing is entering vim mode, not plain vi
set nocompatible
" force 256 colors on the terminal
set t_Co=256
" load the color scheme before anything
colorscheme darkblue " or desert... or anything
" the syntax cmd is when the colorscheme gets parsed, i think..
syntax on
" might not be on by default, this enable the cursor line feature
set cursorline

" set the prefered colours, pick one line here only.
" dark grey, better you can get if you don't support 256 colours
hi CursorLine   cterm=NONE ctermbg=8 ctermfg=NONE
" light grey, no 256 colors
hi CursorLine   cterm=NONE ctermbg=7 ctermfg=NONE
" dark redish
hi CursorLine   cterm=NONE ctermbg=52 ctermfg=NONE
" dark bluish
hi CursorLine   cterm=NONE ctermbg=17 ctermfg=NONE
" very light grey
hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE
" yelowish
hi CursorLine   cterm=NONE ctermbg=229 ctermfg=NONE
" almost black
hi CursorLine   cterm=NONE ctermbg=234 ctermfg=NONE

आप export TERM=xterm-256colorकाम करने के लिए 256 रंगों के लिए पर्यावरण चर भी सेट कर सकते हैं । पूरा रंग चार्ट यहाँ है: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
वैसे set cursorlineआपके .vimrc अंश से गायब है। मुझे यह पता लगाने में 10 मिनट लग गए :)
apurkrt

13

यदि आप उपयोग में से किसी एक को रेखांकित करना चाहते हैं:

:hi CursorLine cterm=underline
:hi CursorLine gui=underline

अन्यथा उनमें से एक का उपयोग करें:

:hi CursorLine cterm=none
:hi CursorLine gui=none

8

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

अगर किसी के पास .vimrc सेटअप इस तरह है, तो आप निम्न .vimrc को सही ढंग से कर्सर हाइलाइट सेट करने के लिए जोड़ सकते हैं: -

function s:SetCursorLine()
    set cursorline
    hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()

क्यों यह काम करता है के रूप में एक सा स्पष्टीकरण। विभिन्न बफ़र और विंडो जानकारी के साथ, मस्केशन वर्तमान कलर्सकेम नाम को बचाता है। यह सत्र बहाली के माध्यम से प्रोग्राम स्टार्टअप के दौरान बहाल किया जाता है। हालाँकि, चूंकि सत्र की बहाली आम तौर पर .vimrc चलाने के बाद की जाती है (आमतौर पर 'autocmd VimEnter *' के माध्यम से मंगाई गई फ़ंक्शन का उपयोग करके), .vimrc सेटिंग को हाइलाइट किए गए कलर्सकेम के लिए डिफ़ॉल्ट रूप से रीसेट किया जाता है।

उपरोक्त फ़ंक्शन, ऑटोकैड के माध्यम से आमंत्रित किया गया है, सभी आरंभिक पूर्ण होने के बाद चलाया जाएगा और इसलिए सफलतापूर्वक कर्सर हाइलाइट सेट करता है।

HTH।


0

आपको .vimrcअंतिम पंक्ति जोड़ना होगा :

highlight lineNr term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

set cursorline

highlight CursorLine term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

highlight CursorLineNr term=bold cterm=none ctermbg=none ctermfg=yellow gui=bold
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.