60 votes

Affichage absolue et relative des numéros de ligne simultanément dans Vim

Est-il possible de l'afficher à la fois relative et absolue des numéros de ligne simultanément dans Vim? De chaque côté-à-côte, ou une autre intéressante présentation sont très bien.

45voto

Orangenhain Points 656

Oui, vous le pouvez. Utilisation RltvNmbr.vim pour afficher les nombres relatifs, et d'utiliser Vim pour afficher le sont absolus:

enter image description here

21voto

plnx Points 71

Vim 7.4 (Patch 7.3.787) afficher le numéro de ligne absolu au lieu de "0", lorsque "relativenumber" et "nombre" sont définis.

D' :h relativenumber, 7.3

Lors de la configuration de cette option, 'nombre' est réinitialisé.

D' :h relativenumber, à 7,4

Le nombre en face de la ligne du curseur dépend aussi de la valeur de 'nombre', voir |number_relativenumber| pour toutes les combinaisons des deux des options.

11voto

Chris Morgan Points 22285

Raisonnablement parlant, vous ne pouvez pas. La numérotation des lignes est un-par-un tampon, contrôlée uniquement par l' 'number' option.

Une idée folle, j'ai essayé: :vertical diffsplit plus :setlocal relativenumber. Cela fait deux copies de la mémoire tampon à côté l'un de l'autre, lié à la position de défilement parce qu'ils sont en mode diff. Cependant, il n'a vraiment pas fonctionner correctement. Les nombres relatifs ne sont pas mis à jour correctement (sur 7.3.154, bug potentiellement fixe plus tard, mais j'en doute—c'est à peine la peine), et même si ils l'ont fait, vous seriez coincé avec une grande horreur et la plus difficile de la gestion et de la navigation.

Vous pourriez le faire avec un plugin écrit à un tampon spécial qui vous garder sur la gauche, mais la mise en œuvre serait laid, et il serait encore rendre la navigation difficile (parce que c'est un autre tampon). Je suis ne va certainement pas passer du temps à la rédaction d'un tel plugin, mais je dois avouer que j'aimerais vous montrer les deux formes de la numérotation des lignes.

7voto

go2null Points 11

Combinant plnx et Macario réponses avec vim 7.4.

autocmd WinEnter,FocusGained * :setlocal number relativenumber
autocmd WinLeave,FocusLost   * :setlocal number norelativenumber

Cette affiche Relative de Numérotation (avec la ligne en cours dans l'Absolu) dans la fenêtre active, et d'Absolu dans la non-centrée de la fenêtre.

3voto

Macario Points 930

Ce sont mes mappages relative et absolue des numéros de ligne permet de basculer entre le relatif et l'absolu.

Entrant dans une fenêtre définit la fenêtre de nombres relatifs, tout en laissant le jeu absolu. Ensuite, si vous faites une fissure verticale de la fenêtre vous se le même tampon avec une relative et absoulte numéros.

" setglobal relativenumber
autocmd WinEnter * :setlocal relativenumber
autocmd WinLeave,FocusLost * :setlocal number
autocmd InsertEnter * :setlocal number
autocmd InsertLeave * :setlocal relativenumber

function! g:ToggleNuMode()
  if(&relativenumber == 1)
    set number
  else
    set relativenumber
  endif
endfunc

map <C-l> :call g:ToggleNuMode()<CR>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X