Comment puis-je afficher les numéros de ligne relatifs?

53

Un grand nombre de commandes vim peuvent prendre un nombre faisant référence au nombre de lignes sur lesquelles la commande agira.

Est-il possible d'afficher les numéros de ligne par rapport à la ligne actuelle? Quelque chose comme ce qui suit:

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
la source

Réponses:

65

Je viens de répondre à une question similaire: comment puis-je ajouter des numéros de ligne à Vim?

À partir de la version 7.3, vous pouvez utiliser les éléments suivants:

set relativenumber

J'utilise réellement les deux relativenumberet numberdans mon vimrc qui utilisera des nombres relatifs pour toutes les lignes sauf la ligne actuelle.

set number                     " Show current line number
set relativenumber             " Show relative line numbers
Collin Peters
la source
Pas exactement, mais le premier changelog est mentionné dans 7.3. ftp.vim.org/pub/vim/patches/7.3/README
Collin Peters le
7

Vous pouvez activer ou désactiver la numérotation relative en utilisant:

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

nnoremap <leader>nt :call NumberToggle()<cr>
shawndumas
la source
2
Le numéro norelativen numérise-t-il simplement la numérotation ou passe-t-il à la numérotation conventionnelle?
Nick J Adams
set numberest le paramètre qui contrôle la présence des nombres afin qu'il ne
permute
2
Le numbers.vimplug-in ajoute également des fonctionnalités de nombre relatif plus avancées, par exemple avoir la ligne occupée par votre curseur pour imprimer le numéro non relatif et passer à la numérotation non relative dans tout le fichier lorsque la fenêtre vim perd le focus.
bronzehedwick
1
@shawndumas alors y a-t-il une priorité de quels nombres sont montrés? Si, par exemple, j'avais défini un numéro dans mon vimrc et un ensemble, le numéro associé / norelativen pouvait-il basculer entre la numérotation relative et la numérotation standard?
Nick J Adams
1
c'est le plus correct
shawndumas
4

Si vous souhaitez utiliser un raccourci clavier pour changer le numéro de ligne relatif, voici un extrait de mon vimrc:

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

Dans ce cas, j’utilise deux fois ctrl-L pour l’activer.

Sean Lee
la source