Bagaimana saya bisa menampilkan nomor garis relatif?

53

Banyak perintah vim dapat mengambil nomor yang mengacu pada jumlah baris yang akan ditindaklanjuti oleh perintah tersebut.

Apakah mungkin untuk menunjukkan nomor baris relatif terhadap baris saat ini? Sesuatu seperti yang berikut ini:

3: some text here
2: more text
1: This is the line above where the cursor is
0: The cursor is on this line
1: This is the line after the cursor
2: More text here
Nick J Adams
sumber

Jawaban:

65

Saya baru saja menjawab pertanyaan serupa di sini: Bagaimana saya bisa menambahkan nomor baris ke Vim?

Mulai dengan versi 7.3, Anda dapat menggunakan yang berikut:

set relativenumber

Saya benar-benar menggunakan keduanya relativenumberdan numberdi vimrc saya yang akan menggunakan angka relatif untuk semua baris kecuali baris saat ini.

set number                     " Show current line number
set relativenumber             " Show relative line numbers
Collin Peters
sumber
Tidak yakin persis tetapi changelog pertama yang disebutkan dalam adalah 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters
7

Anda dapat menghidupkan dan mematikan penomoran relatif menggunakan:

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off
Matthew Rankin
sumber
5
function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>
shawndumas
sumber
2
Apakah angka norelativen hanya mematikan penomoran sama sekali atau beralih ke penomoran konvensional?
Nick J Adams
set numberadalah pengaturan yang mengontrol keberadaan angka sehingga hanya akan beralih antara rel dan non-rel
shawndumas
2
The numbers.vimPlugin juga menambahkan beberapa fungsi jumlah relatif lebih maju, misalnya memiliki garis kursor menempati mencetak jumlah non-relatif, dan beralih ke non-relatif penomoran di seluruh berkas ketika jendela vim kehilangan fokus.
bronzehedwick
1
@shawndumas, jadi adakah prioritas nomor yang ditampilkan? Jika misalnya saya telah menetapkan angka di vimrc saya dan mengatur relativenumber / norelativenumber dipanggil bisakah itu beralih antara penomoran relatif dan standar?
Nick J Adams
1
itu paling benar
shawndumas
4

Jika Anda ingin menggunakan hotkey untuk mengganti nomor relatif, berikut ini cuplikan di vimrc saya:

" Toggle relative line number
nmap <C-L><C-L> :set invrelativenumber<CR>

Dalam hal ini, saya menggunakan ctrl-L dua kali untuk menghidupkannya.

Sean Lee
sumber