Wie zeige ich Zeilennummern in Emacs an (nicht in der Moduszeile)?

27

Ich weiß, wie man Zeilennummern (und Spalten) in der Mode-Zeile anzeigt, aber ich möchte, dass Emacs die Zeilennummern für alle Zeilen auf der linken Seite anzeigt. Ich habe dies in vim und anderen Texteditoren gesehen. Wie mache ich das für Emacs?

Luke
quelle
Metadiskussion über das Markieren dieser Frage
Gilles 'SO - hör auf, böse zu sein'

Antworten:

30

Wie @ eric-brown schon erwähnte kannst du verwenden M-x linum-mode.

Eine weitere gute Idee ist, (add-hook 'prog-mode-hook 'linum-mode)in Ihrem init.el den Linum-Modus in allen Programmiermodi automatisch zu aktivieren.

Für Emacs-Versionen> = 26 können Sie display-line-numbers-modeoder verwenden global-display-line-numbers-mode.

Siehe EmacsWiki

Maciej Goszczycki
quelle
Diese Antwort ist veraltet, siehe Antwort mit display-line-numbers-mode.
ideasman42
Vielleicht finden Sie auch (global-display-line-numbers-mode)nützlich.
Lorem Ipsum
10

M-x linum-modewerde den Trick machen. Wenn Sie dies für alle Puffer ausführen möchten, M-x global-linum-modewird dies ausgeführt.

Eric Brown
quelle
Weißt du, wie ich das dauerhaft machen kann?
Luke
1
(gemäß dem Vorschlag von nispio und mgoszcz2) Durch Hinzufügen (global-linum-mode)Ihrer .emacs.d / init.el-Datei wird sie dauerhaft. Ich finde den Global-Linum-Modus etwas übertrieben, und der Vorschlag von mgoszcz2, ihn nur in bestimmten Modi zu aktivieren, ist gut.
Eric Brown
7

Wenn Sie Emacs 26 oder neuer verwenden, können Sie verwenden display-line-numbers-mode.

von etc/NEWS.26:

** Emacs unterstützt jetzt die optionale Anzeige von Zeilennummern im Puffer. Dies ähnelt dem, was der Linum-Modus bietet, ist jedoch viel schneller und beansprucht den Anzeigebereich für die Zeilennummern nicht. Passen Sie die pufferlokale Variable 'display-line-numbers' an, um diese optionale Anzeige zu aktivieren. Alternativ können Sie den Nebenmodus 'Zeilenanzahl anzeigen' oder den globalen Modus 'Zeilenanzahl anzeigen' verwenden. Passen Sie in diesen Modi den Typ der angezeigten Zeilennummern mit demselben Wert an, den Sie auch für die angezeigten Zeilennummern verwenden würden.

Yasushi Shoji
quelle
4

nlinum-modeist eine andere Option. Es hat die gleiche Schnittstelle wie linum-mode, sodass Sie die gleichen Hooks verwenden können, aber es verwendet eine andere Technologie, um leistungsfähiger zu sein. Zitat aus nlinum.el:

;; Dies ist wie der Linum-Modus, verwendet jedoch jit-lock, um (hoffentlich) effizienter zu sein.

Sie können es über GNU Elpa wie gewohnt installieren list-packages.

http://elpa.gnu.org/packages/nlinum.html

fgeller
quelle
1

Sicher linum-modeist eine gute Wahl. Wenn Sie nicht immer Zeilennummern sehen möchten, wie ich, können Sie diesen Trick aus dem exzellenten What the .emacs.d !? Blog.

Dies wird vorübergehend aktiviert, linum-modewenn Sie ausgeführt werden goto-line.

Hier ist der Code aus seinem Blog:

(global-set-key [remap goto-line] 'goto-line-with-feedback)

(defun goto-line-with-feedback ()   "Show line numbers temporarily, while prompting for the line number input"   (interactive)   (unwind-protect
      (progn
        (linum-mode 1)
        (goto-line (read-number "Goto line: ")))
    (linum-mode -1)))
Mr. Wacky
quelle