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>