साथ में
setl nu!
मैं relativenumber के समान संख्या (चालू / बंद) टॉगल कर सकता हूं
setl rnu!
मैं {off, number, relativenumber} को कैसे टॉगल कर सकता हूं?
साथ में
setl nu!
मैं relativenumber के समान संख्या (चालू / बंद) टॉगल कर सकता हूं
setl rnu!
मैं {off, number, relativenumber} को कैसे टॉगल कर सकता हूं?
जवाबों:
if &nu == 1
set rnu
elseif &rnu == 1
set nornu
else
set nu
endif
क्योंकि मैं एक तर्क पहेली से प्यार करता हूँ, और वास्तव में इसे प्यार करता हूँ, जब एक विम कमांड सक्सेस रिपीट ( @:एक व्यक्तिगत पसंदीदा) के लिए एक ही लाइन पर फिट बैठता है :
:exec &nu==&rnu? "se nu!" : "se rnu!"
यह उसी चक्र को बनाए रखेगा। मुझे लगता है कि यह मुख्य रूप से है क्योंकि let &nu=1
स्पष्ट रूप से नोरेल्टिवनम्बर सेट किया जाएगा - शायद प्रलेखन में पाए जाने वाले कारणों के लिए :)
nmap <F3> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR>
F3 का उपयोग करके तीन विकल्पों के माध्यम से टॉगल करने के लिए एक पंक्ति के रूप में अपने .vimrc फ़ाइल में रख सकता हूं ।
nnoremap <silent> <F3>
... दृश्य विकर्षण को कम करने और अन्य मैपिंग के साथ हस्तक्षेप करने के लिए।
number
और relativenumber
विकल्पों के बीच संबंध का आश्वासन देने के लिए , देखें :helpg When setting this option
।
Vim 7.3.1115 के अनुसार ऐसा करना थोड़ा और जटिल हो गया है।
कारण यह है कि "कोई लाइन नंबर" और "निरपेक्ष लाइन नंबर" के अलावा, अब रिश्तेदार लाइन नंबर के लिए दो सेटिंग्स हैं : साधारण "रिश्तेदार लाइन नंबर", और "रिश्तेदार लाइन नंबर कर्सर लाइन पर निरपेक्ष संख्या के साथ"।
अधिक तकनीकी रूप से, सभी चार संयोजन 'number'
और 'relativenumber'
अब संभव हैं।
यहां बताया गया है कि टॉगल कैसे करें:
सभी चार सेटिंग्स टॉगल करें, कोई संख्या नहीं → निरपेक्ष → सापेक्ष → कर्सर लाइन पर पूर्ण के साथ सापेक्ष :
:exe 'set nu!' &nu ? 'rnu!' : ''
संख्या के बीच टॉगल करें → निरपेक्ष → सापेक्ष :
:let [&nu, &rnu] = [&nu+&rnu==0, &nu]
कोई संख्या नहीं के बीच टॉगल करें → निरपेक्ष → कर्सर लाइन पर पूर्ण के साथ सापेक्ष :
:let [&nu, &rnu] = [!&rnu, &nu+&rnu==1]
उन लोगों के लिए जो अधिक पठनीय समाधान चाहते हैं, निम्नलिखित मेरे पास मेरे .vimrc में है
" Relative or absolute number lines
function! NumberToggle()
if(&nu == 1)
set nu!
set rnu
else
set nornu
set nu
endif
endfunction
nnoremap <C-n> :call NumberToggle()<CR>
इसके बारे में अच्छी बात यह है कि आप सापेक्ष और निरपेक्ष संख्या मोड के बीच ctrl+ nटॉगल कर सकते हैं!
ऊपर एरिक एंडरसन की तरह एक और विकल्प :
"Relative with start point or with line number or absolute number lines
function! NumberToggle()
if(&number == 1)
set number!
set relativenumber!
elseif(&relativenumber==1)
set relativenumber
set number
else
set norelativenumber
set number
endif
endfunction
nnoremap <C-n> :call NumberToggle()<CR>
" put this in your .vimrc or source it from your .vimrc
function! ToggleRelativeNumber()
if &relativenumber
set norelativenumber
else
set relativenumber
endif
endfunction
nmap ;r :call ToggleRelativeNumber()<CR>