Hybrid Line Number-Modus in Emacs?

11

Ist es möglich, die absolute Nummer der aktuellen Zeile anstelle von "0" anzuzeigen, wenn Sie sich im Modus für die relative Zeilennummer befinden? Dies wird manchmal als "Hybridleitungsnummernmodus" bezeichnet.

So was:

 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]); 

So machst du es in vim .

Ich laufe böse und aktiviere den relativen Zeilennummernmodus in meinen .emacs wie folgt:

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

Ich sehe keine Pakete dafür oder Anpassungen dafür in den vorhandenen Paketen. Ich bin mit elisp einigermaßen vertraut, daher ist es möglicherweise möglich, herauszufinden, wie der vorhandene Code mit Ratschlägen verknüpft werden kann, aber ich würde diesen Weg lieber vermeiden, wenn dies möglich ist.

Danke vielmals.

vt5491
quelle
linum-relative-global-modewird bereitgestellt von evil?
Phils
Nein, es ist Teil des Standard-Emacs-Pakets 'linenum-relative'. Das Ausführen des Bösen hat wahrscheinlich nichts mit dieser Frage zu tun, außer der Tatsache, dass relative Zeilennummern für "vi-Benutzer", dh Personen, die das Böse ausführen, am wahrscheinlichsten nützlich sind. Ich hatte nur gedacht, ich würde es erwähnen, falls es irgendwie relevant ist.
vt5491
Kein solches Paket (noch "linum-relative") im Standard-Repo und keine Standardbibliothek. Meinten Sie vielleicht eines der nicht standardmäßigen Paket-Repos? Sie sollten immer genau wissen, auf welche nicht standardmäßigen Bibliotheken Sie sich beziehen.
Phils
github.com/coldnew/linum-relative . Mit "Standard" wollte ich nicht einen Teil der Emacs-Basis implizieren, sondern nur ein "Standard", z. B. "gewöhnliches" Paket unter Melpa. Und ich ja, ich habe es falsch geschrieben - es ist "linum-relativ", nicht "linenum-relativ". Entschuldigung für die Verwirrung.
vt5491
FWIW, Emacs 26 bietet eine native (sprich: schnelle) Zeilennummerierung, die hybride sein kann, wenn Sie display-line-numbersauf relativeund display-line-numbers-current-absoluteauf t(Standardeinstellung) setzen.
Basil

Antworten:

10

Sie können die aktuelle Zeilennummer anstelle von "0" anzeigen lassen, indem Sie die linum-relative-current-symbolVariable anpassen .

Sie können diese Variable auf verschiedene Arten ändern.

  • Mx Customize-Group RET linum-relative RET

    Passen Sie von dort aus die Variable "Linum Relative Current Symbol" an (deren Standardwert ist 0). Wenn Sie auf den Link "Mehr" unten klicken, lautet die vollständige Beschreibung der Variablen:

    Das Symbol, das Sie in der aktuellen Zeile anzeigen möchten, ist standardmäßig 0.

    Sie können eine beliebige Zeichenfolge wie "->" verwenden. Wenn diese Variable eine leere Zeichenfolge ist, zeigt linum-relative die tatsächliche Zeilennummer in der aktuellen Zeile an.

    Setzen Sie diesen Wert auf eine leere Zeichenfolge, löschen Sie diese einfach 0und klicken Sie auf "Übernehmen und speichern".

  • Eine andere Möglichkeit besteht darin, Folgendes zu Ihrer Emacs-Konfiguration hinzuzufügen und zu bewerten:

    (setq linum-relative-current-symbol "")
Kaushal Modi
quelle
-1

Ich verwende Spacemacs und M-x linum-relative-modemache das genau.

Sie können auch hinzufügen:

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

auf die dotspacemacs/user-configFunktion in .spacemacs, um Zeilennummern in diesem Stil dauerhaft festzulegen.

nico
quelle