con
setl nu!
Posso attivare / disattivare il numero (simile) con il numero relativo
setl rnu!
come posso disattivare {off, number, relativenumber}?
con
setl nu!
Posso attivare / disattivare il numero (simile) con il numero relativo
setl rnu!
come posso disattivare {off, number, relativenumber}?
Risposte:
Perché adoro un puzzle di logica e lo adoro davvero quando un comando vim si adatta su una singola riga per ripetizioni succinte ( @:è un preferito personale):
:exec &nu==&rnu? "se nu!" : "se rnu!"
Ciò manterrà lo stesso ciclo. Penso che sia principalmente perché let &nu=1
imposterà implicitamente il numero norelativen - per motivi probabilmente trovati nella documentazione :)
nmap <F3> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR>
per alternare tra tre opzioni usando F3.
nnoremap <silent> <F3>
... per ridurre la distrazione visiva e interferire con altre mappature.
exe'se'&nu+&rnu?'rnu!':'nu'
.
number
e le relativenumber
opzioni, vedi :helpg When setting this option
.
A partire da Vim 7.3.1115 questo è diventato un po 'più complicato da fare.
Il motivo è che oltre a "nessun numero di riga" e "numero di riga assoluto", ora esistono due impostazioni per i numeri di riga relativi: i "numeri di riga relativi" ordinari e i "numeri di riga relativi" con il numero assoluto sulla riga del cursore ".
Più tecnicamente parlando, tutte e quattro le combinazioni di 'number'
e 'relativenumber'
ora sono possibili.
Ecco come attivare:
Attiva / disattiva tutte e quattro le impostazioni, nessun numero → assoluto → relativo → relativo con assoluto sulla linea del cursore :
:exe 'set nu!' &nu ? 'rnu!' : ''
Alterna tra nessun numero → assoluto → relativo :
:let [&nu, &rnu] = [&nu+&rnu==0, &nu]
Alterna tra nessun numero → assoluto → relativo con assoluto sulla linea del cursore :
:let [&nu, &rnu] = [!&rnu, &nu+&rnu==1]
Per coloro che desiderano una soluzione più leggibile, quanto segue è quello che ho nel mio .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>
La cosa interessante di questo è che puoi premere ctrl+ nper alternare tra le modalità numeriche relative e assolute!
Un'altra alternativa come Eric Anderson sopra:
"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>