मैं साइन कॉलम को हर समय कैसे दिखा सकता हूं, भले ही उसमें कोई संकेत न जोड़े गए हों?


32

मैंने अभी-अभी विम के लिए Git Gutter प्लगइन जोड़ा है जो लाइनों को जोड़ / संशोधित / हटाकर दिखाता है git diff। यह Sign Columnप्रत्येक पंक्ति के आगे वर्ण दिखाने के लिए उपयोग करता है ।

फिलहाल कॉलम सेव पर दिखाई देता है, जो काफी झंझट वाला है। मैं कॉलम को हमेशा दिखाना चाहूंगा, भले ही खाली हो।

मैं साइन कॉलम को हमेशा दृश्यमान कैसे बना सकता हूं?

जवाबों:


40

Vim 7.4.2201 के साथ शुरू, आप कर सकते हैं:

:set signcolumn=yes

सीपी। :help 'signcolumn'। पुराने विम संस्करणों के लिए, आपको एक डमी साइन परिभाषित करना होगा और इसे वर्तमान बफर में रखना होगा:

:sign define dummy
:execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')

14
यह आप खोलना हर नए बफर में काम करने के लिए, दोनों डाल autocmd BufEnter * sign define dummyऔर autocmd BufEnter * execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')अपने vimrc में।
1

लगता है के रूप में पुरानी set signcolumn=yesshenanigans बिना चाल है।
cprn

1
@ कर्ण: आप सही कह रहे हैं; मैंने अपने उत्तर में उसे जोड़ दिया है। धन्यवाद!
इंगो करकट

फिर भी नीचे से मेरा जवाब हटा, धन्यवाद। चीयर्स!
cprn

22

विशेष रूप से vim-gitgutter के लिए, आप अपने में निम्न चर भी सेट कर सकते हैं ~/.vimrc:

let g:gitgutter_sign_column_always = 1

अद्यतन करें

प्लगइन अब उपरोक्त लाइन को हटाने और इसके बजाय उपयोग के लिए एक चेतावनी जारी करेगा:

set signcolumn="yes"

धन्यवाद, इस प्रश्न के पोस्ट होने के बाद उस विकल्प को जोड़ा जाना चाहिए। हालांकि जानना उपयोगी है।
जोर्डेलर

1
वास्तव में, ऐसा लगता है कि इसे जोड़ने वाली प्रतिबद्धता 14 मार्च 2013 को बनी थी - आपके प्रश्न के ठीक दो सप्ताह बाद!
wjv

कुछ और काम करते समय मैंने हाल ही में GitGutter स्रोत के अंदर चारों ओर पोज़ किया, और मैंने देखा कि इस चर की स्थापना साइन कॉलम के प्रदर्शन को ठीक उसी तरह से करती है, जिस तरह से इस प्रश्न का स्वीकृत उत्तर है - एक डमी साइन सेट करके।
wjv

5
btw, मेरे लिए यह उद्धरण के set signcolumn=yes बिना था
tam5

6

जबकि एक संकेत को परिभाषित करने वाला छोटा नृत्य और इसे ठीक काम करता है, एक और अधिक सुंदर विकल्प जो मेरे लिए अच्छा काम करता है:

autocmd BufRead,BufNewFile * setlocal signcolumn=yes

और अगर कुछ फिल् टप टप टप टप टप टप टप र न ह:

autocmd FileType tagbar,nerdtree setlocal signcolumn=no

BufReadPost Auto कमांड को "*" के लिए संसाधित करते समय त्रुटि का पता चला: E518: अज्ञात विकल्प: signcolumn = yes
brandones

आपको vim, @brandonjones के नए संस्करण की आवश्यकता है। मुझे यकीन नहीं है कि कब signcolumnजोड़ा गया था, लेकिन यह 7.2 में नहीं है और यह 8.0 में है। मुझे इसे 7.4 में देखना याद नहीं है, लेकिन यह हो सकता है। यह विम और नियोविम दोनों के वर्तमान संस्करणों में मौजूद है।
जिम स्टीवर्ट 15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.