mode numéro de ligne hybride dans emacs?


11

Est-il possible d'afficher le numéro absolu de la ligne courante, au lieu de "0", en mode numéro de ligne relatif? Ceci est parfois appelé "mode de numéro de ligne hybride".

Comme ça:

 7                                                                                                      
  6          this.oscs[i].oscillator.start();                                                            
  5        }                                                                                             
  4                                                                                                      
  3        this.bindController();                                                                        
  2      };                                                                                              
  1                                                                                                      
252      factory.stop = function () {  <- current line number shows                                                                                       
  1        console.log('theremin: now in stop 2');                                                       
  2        this.leapController.disconnect();                                                             
  3        //this.leapController.removeListener('frame', factory.ctrlFrameHandler);                      
  4        //this.leapController.removeListener('frame', this.ctrlFrameHandler);                         
  5        this.leapController.removeListener('frame', this.leapController.listeners('frame')[0]); 

Voici comment vous le faites dans vim .

Je cours mal et j'active le mode de numéro de ligne relatif dans mes .emacs comme ceci:

(linum-mode)
(linum-relative-global-mode)

Je ne vois aucun package pour cela, ni aucune personnalisation disponible pour cela dans les packages existants. Je suis un peu familier avec elisp, donc il pourrait être possible de comprendre comment accrocher le code existant, par exemple avec des conseils, mais je préfère éviter d'aller dans cette voie si possible.

Merci beaucoup.


linum-relative-global-modeest fourni par evil?
phils

non, cela fait partie du package emacs standard «relatif au linum». L'exécution du mal n'a probablement rien à voir avec cette question, à part le fait que les numéros de ligne relatifs sont plus susceptibles d'être utiles aux «utilisateurs vi», c'est-à-dire aux personnes qui exécutent le mal. J'avais juste pensé le mentionner au cas où cela serait pertinent.
vt5491

Aucun package de ce type (ni "relatif à linum") dans le référentiel standard, et pas une bibliothèque par défaut. Pensiez-vous peut-être à l'un des référentiels de packages non standard? Vous devez toujours être précis sur les bibliothèques non standard auxquelles vous faites référence.
phils

github.com/coldnew/linum-relative . Par «standard», je ne voulais pas impliquer une partie de la base emacs, mais juste un paquet «standard», par exemple «ordinaire» sous melpa. Et je oui, je l'ai mal orthographié - il est "relatif au linum" et non "relatif au linum". Désolé pour la confusion.
vt5491

FWIW, Emacs 26 apporte une numérotation de ligne native (lire: rapide), qui peut être hybride si vous définissez display-line-numberssur relativeet display-line-numbers-current-absolutesur t(par défaut).
Basil

Réponses:


10

Vous pouvez faire apparaître le numéro de ligne actuel au lieu de "0" en personnalisant la linum-relative-current-symbolvariable.

Vous pouvez modifier cette variable de plusieurs manières.

  • Mx personnaliser-groupe RET linum relatif RET

    À partir de là, personnalisez la variable "Linum Relative Current Symbol" (dont la valeur par défaut est 0). Si vous cliquez sur le lien "Plus", en dessous, la description complète de la variable se lira:

    Le symbole que vous souhaitez afficher sur la ligne courante, par défaut c'est 0.

    Vous pouvez utiliser n'importe quelle chaîne comme "->". Si cette variable est une chaîne vide, relative à linum affichera le numéro de ligne réel à la ligne actuelle.

    Donc, définissez cette valeur sur une chaîne vide, supprimez simplement cela 0et appuyez sur "Appliquer et enregistrer".

  • Une autre façon consiste à ajouter ce qui suit à votre configuration emacs et à l'évaluer:

    (setq linum-relative-current-symbol "")

-1

J'utilise spacemacs et je fais M-x linum-relative-modeça exactement.

Vous pouvez également ajouter:

(setq-default dotspacemacs-line-numbers 'relative)

à la dotspacemacs/user-configfonction .spacemacspour définir des numéros de ligne dans ce style de façon permanente.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.