Come posso mostrare i numeri di riga relativi?


53

Molti comandi di vim possono prendere un numero riferito al numero di righe su cui agirà il comando.

È possibile mostrare i numeri di riga relativi alla riga corrente? Qualcosa di simile al seguente:

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

Risposte:


65

Ho appena risposto a una domanda simile qui: Come posso aggiungere numeri di riga a Vim?

A partire dalla versione 7.3, è possibile utilizzare quanto segue:

set relativenumber

In realtà uso entrambi relativenumbere numbernel mio vimrc che utilizzerà i numeri relativi per tutte le righe tranne la riga corrente.

set number                     " Show current line number
set relativenumber             " Show relative line numbers

Non sono sicuro esattamente, ma il primo log delle modifiche menzionato in è 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters

7

È possibile attivare e disattivare la numerazione relativa usando:

:set rnu    " toggle relative numbering on
:set rnu!   " toggle relative numbering off

5
function! NumberToggle()
  if(&relativenumber == 1)
    set norelativenumber
  else
    set relativenumber
  endif
endfunc

nnoremap <leader>nt :call NumberToggle()<cr>

2
Il norelativenumber disattiva semplicemente la numerazione o passa alla numerazione convenzionale?
Nick J Adams,

set numberè l'impostazione che controlla le presenze dei numeri, quindi passerà solo da rel a non rel
shawndumas,

2
Il numbers.vimplugin aggiunge anche alcune funzionalità di numero relativo più avanzate, ad es. Avere la linea occupata dal cursore per stampare il numero non relativo e passare alla numerazione non relativa in tutto il file quando la finestra di vim perde lo stato attivo.
Bronzehedwick,

1
@shawndumas quindi c'è una precedenza di quali numeri sono mostrati? Se, ad esempio, avessi impostato il numero nel mio VIMRC e impostato il numero relativo / norelativenumber, si potrebbe passare dalla numerazione relativa a quella standard?
Nick J Adams,

1
questo è più corretto
shawndumas,

4

Se si desidera utilizzare un tasto di scelta rapida per alternare il numero di riga relativo, ecco un frammento nel mio vimrc:

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

In questo caso, uso due volte ctrl-L per attivarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.