dengan
setl nu!
Saya dapat mengaktifkan nomor (on / off), mirip dengan nomor relativen
setl rnu!
bagaimana saya bisa beralih {off, number, relativenumber}?
dengan
setl nu!
Saya dapat mengaktifkan nomor (on / off), mirip dengan nomor relativen
setl rnu!
bagaimana saya bisa beralih {off, number, relativenumber}?
Jawaban:
Karena saya suka teka-teki logika, dan sangat menyukainya ketika perintah vim cocok pada satu baris untuk pengulangan singkat @ : adalah favorit pribadi):
:exec &nu==&rnu? "se nu!" : "se rnu!"
Ini akan mempertahankan siklus yang sama. Saya pikir itu terutama karena let &nu=1
akan secara implisit mengatur norelativenumber - untuk alasan yang mungkin ditemukan dalam dokumentasi :)
nmap <F3> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR>
untuk beralih melalui tiga opsi menggunakan F3.
nnoremap <silent> <F3>
... untuk mengurangi gangguan visual dan mengganggu pemetaan lainnya.
exe'se'&nu+&rnu?'rnu!':'nu'
.
number
dan relativenumber
opsi, lihat :helpg When setting this option
.
Pada Vim 7.3.1115 ini menjadi sedikit lebih rumit untuk dilakukan.
Alasannya adalah bahwa selain "tidak ada nomor baris" dan "nomor baris absolut", ada sekarang dua pengaturan untuk nomor baris relatif: "nomor baris relatif" biasa, dan "nomor baris relatif dengan angka absolut pada garis kursor"
Lebih teknis, keempat kombinasi 'number'
dan 'relativenumber'
sekarang mungkin.
Berikut cara beralih:
Alihkan keempat pengaturan, tidak ada angka → mutlak → relatif → relatif dengan absolut di garis kursor :
:exe 'set nu!' &nu ? 'rnu!' : ''
Beralih di antara tidak ada angka → mutlak → relatif :
:let [&nu, &rnu] = [&nu+&rnu==0, &nu]
Beralih di antara tidak ada angka → mutlak → relatif dengan absolut di garis kursor :
:let [&nu, &rnu] = [!&rnu, &nu+&rnu==1]
Bagi mereka yang menginginkan solusi yang lebih mudah dibaca, berikut ini adalah apa yang saya miliki di .vimrc saya
" 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>
Yang keren tentang ini adalah Anda dapat menekan ctrl + n untuk beralih antara mode angka relatif dan absolut!
" 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>
Alternatif lain seperti Eric Anderson atas:
"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>