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

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

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

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

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.