Como posso mostrar números de linha relativos?

53

Muitos comandos do vim podem ter um número referente ao número de linhas em que o comando atuará.

É possível mostrar os números das linhas em relação à linha atual? Algo como o seguinte:

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
fonte

Respostas:

65

Acabei de responder a uma pergunta semelhante aqui: Como posso adicionar números de linhas ao Vim?

A partir da versão 7.3, você pode usar o seguinte:

set relativenumber

Na verdade, eu uso ambos relativenumbere numberno meu vimrc, que usará números relativos para todas as linhas, exceto a linha atual.

set number                     " Show current line number
set relativenumber             " Show relative line numbers
Collin Peters
fonte
Não tenho certeza exatamente, mas o primeiro registro de alterações mencionado é 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters
7

Você pode ativar e desativar a numeração relativa usando:

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

nnoremap <leader>nt :call NumberToggle()<cr>
shawndumas
fonte
2
O número norelativo simplesmente desativa a numeração por completo ou muda para a numeração convencional?
Nick J Adams
set numberé a configuração que controla a presença de números de modo que só vai alternar entre rel e não-rel
shawndumas
2
O numbers.vimplug-in também adiciona uma funcionalidade de número relativo mais avançada, por exemplo, manter a linha do cursor imprimindo o número não relativo e alternar para numeração não relativa em todo o arquivo quando a janela do vim perde o foco.
bronzehedwick
11
@shawndumas, então existe uma precedência de quais números são mostrados? Se, por exemplo, eu tivesse definido o número no meu vimrc e o número relativo / número norativo foi chamado, poderia alternar entre a numeração relativa e a padrão?
Nick J Adams
11
que é mais correto
shawndumas
4

Se você deseja usar uma tecla de atalho para alternar o número da linha relativa, aqui está um trecho no meu vimrc:

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

Nesse caso, eu uso o ctrl-L duas vezes para alterná-lo.

Sean Lee
fonte