2009-04-17 24 views
18

मैं जोड़ा टॉगल करने के लिए:विम: remap कुंजी लाइन नंबर

set number 
nnoremap <F2> :set nonumber! 

मेरी vimrc फाइल करने के लिए। मूल रूप से यह करना है कि मुझे लाइन नंबरिंग टॉगल करने के लिए F2 दबाएं, लेकिन यह काम नहीं कर रहा है। मैंने क्या गल्त किया है?

उत्तर

33

अपने .vimrc में, इस जोड़ें:

set number 
nnoremap <F2> :set nonumber!<CR> 

फिर F2 दबाने अगर यह बंद है नंबर लाइन पर हो जाएगा, और अगर यह पर है इसे बंद कर देते।

+1

यह मेरे लिए पूरी तरह से काम करता है, लेकिन सिर्फ उत्सुक है कि टॉगल फ़ंक्शन को कैसे लागू किया जाए? –

+0

नवीनतम विम के साथ, 'जोड़ें' सेट करें! norelativenumber! 'यदि आप दोनों संख्या और सापेक्ष संख्या का उपयोग करते हैं। – mtk

23

यह मैं (एक अलग कुंजी बाइंडिंग के साथ) क्या उपयोग है: "संख्या"

nmap <f2> :set number! number?<cr> 

सेटिंग को टॉगल करता है और "नंबर?" राज्य की रिपोर्ट

5

यह एक विधि है:

map <silent> <F2> :if &number <Bar> 
    \set nonumber <Bar> 
     \else <Bar> 
    \set number <Bar> 
     \endif<cr> 

(यह एक अच्छा है क्योंकि मैं आमतौर पर वहाँ में foldcolumn डाल के रूप में अच्छी तरह से)

यह एक और है:

map <silent> <F2> :set invnumber<cr> 

(प्रत्यक्ष विधि)

+0

मैंने अभी आपके द्वारा साझा की गई दूसरी विधि का उपयोग किया है। यह वही है जिसे मैं पसंद करता हूं, धन्यवाद :) – lucapette

+1

दूसरी विधि कहीं और (कहीं भी) की तुलना में कहीं अधिक सही और आसान है। यह एक अलग * और स्वीकार्य * उत्तर होना चाहिए था। –

7
nmap <silent> <F11> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR> 

आप एक बार में दोनों सापेक्ष संख्या और संख्या निर्धारित कर सकते नई vim में, इस तरह से:

set nu rnu 

enter image description here

+2

इसके लिए धन्यवाद, किसी भी तरह के टॉगल के लिए अच्छा है, न केवल संख्या टॉगलिंग। – Hassek

+0

नया एक तरीका 'एनएमएपी : exec & nu == & rnu? "से नू!" : "से आरएनयू!" ' – SergioAraujo

0

मैं इस का उपयोग करें (वर्तमान पूर्ण लाइन संख्या के साथ) relativenumber बीच टॉगल करने के और कोई लाइन

नंबर
nnoremap <silent> <leader>l :set relativenumber! <bar> set nu!<CR> 
संबंधित मुद्दे