2010-02-02 9 views
65

में दाएं मार्जिन क्या वर्तमान दस्तावेज़ पर विम/जीवीआईएम दाएं हाशिए को हाइलाइट करने का कोई तरीका है? मैं बस थोड़ी देर के लिए विम के साथ काम शुरू कर दिया है और मैं स्तंभ पर यह सही मार्जिन के बिना नाराज पाया 80विम

+0

http://stackoverflow.com/questions/235439/vim-80-column-layout-concerns –

+0

आप textwidth परिभाषित कर सकते हैं और यहां तक ​​कि nowrap सेट यदि आप चाहते हैं। – pavium

+10

विम में नया 7.3: ': सेट सीसी = 81', या टेक्स्टविड्थ के सापेक्ष:': cc = + 1 सेट करें। – Nefrubyr

उत्तर

103

विम 7.3 ने रंगीन रंग प्रस्तुत किया।

:set colorcolumn=80 

आपके लिए संक्षिप्त रूप याद रखना आसान हो सकता है।

:set cc=80 
+2

दूसरे उत्तर पर एक नज़र डालें: http://stackoverflow.com/questions/235439/vim-80-column-layout-concerns संगतता सुधार के लिए। – mgold

+1

@mgold संख्या से किसी भी जवाब का संदर्भ नहीं देते हैं। आदेशों के आधार पर आदेश बदलता है। हमेशा साझा लिंक का उपयोग करें। –

+1

5 महीने बाद मैंने इसके लिए गुगल किया है और फिर से उपरोक्त लिंक को परेशान करने के लिए मिला है। यहां वह जवाब है जो वह http://stackoverflow.com/a/3765575/117471 के बारे में बात कर रहा है जो दिखाता है कि कैसे अपने vimrc को vim> = 7.3 और <7.3 –

19

के ऊर्ध्वाधर किनारे कल्पना करने के लिए कोई आसान तरीका नहीं है textwidth -margin (विम 7.2 और पहले में)। हालांकि, :match कमांड का उपयोग कर 80 कॉलम सीमा से अधिक सभी वर्णों को हाइलाइट कर सकता है।

:match ErrorMsg /\%>80v.\+/ 

तो, सामान्य समाधान निम्न ऑटो-कमांड का उपयोग करना है।

:autocmd BufWinEnter * call matchadd('ErrorMsg', '\%>'.&l:textwidth.'v.\+', -1) 
7

मैं colorcolumn टॉगल करने के लिए मेरी .vimrc में एक vimscript समारोह में लिखा है जब मैं प्रेस, 8 (अल्पविराम 8, जहां अल्पविराम उपयोगकर्ता परिभाषित आदेश के लिए परिभाषित नेता द्वारा पीछा किया, और आठ मेरी स्मरक कुंजी है का 80 वां स्तंभ पर एक मार्जिन दिखाने) के लिए:

" toggle colored right border after 80 chars 
set colorcolumn=81 
let s:color_column_old = 0 

function! s:ToggleColorColumn() 
    if s:color_column_old == 0 
     let s:color_column_old = &colorcolumn 
     windo let &colorcolumn = 0 
    else 
     windo let &colorcolumn=s:color_column_old 
     let s:color_column_old = 0 
    endif 
endfunction 

nnoremap <Leader>8 :call <SID>ToggleColorColumn()<cr> 
+1

दोनों के साथ संगत बनाना है क्यों एक साधारण एक-लाइनर नहीं: 'nnoremap 8 और सीसी? ': चलो और सीसी = 0 ': ': चलो और सीसी = 80 ' –

+0

डॉ बेको: बहुत बेहतर, धन्यवाद! –

2

मैं 7.2 जैसे पुराने विम संस्करणों के लिए Jonathan Hartley की the answer फिर से लिख दिया के रूप में वहाँ है पुराने विम्स में कोई colorcolumn

highlight OverLength ctermbg=red ctermfg=white guibg=#592929 

let s:OverLengthToggleVariable=0 

function! ToggleOverLength() 
     if s:OverLengthToggleVariable == 0 
       match OverLength /\%81v.\+/ 
       let s:OverLengthToggleVariable=1 
     else 
       match OverLength // 
       let s:OverLengthToggleVariable=0 
     endif 
endfunction 

" I like <leader>h since highlight starts with h.                  
nnoremap <leader>h :call ToggleOverLength()<cr>