Comment afficher les numéros de ligne dans emacs (pas dans la ligne de mode)?

27

Je sais comment afficher les numéros de ligne (et les colonnes) dans la ligne de mode, mais j'aimerais qu'emacs affiche les numéros de ligne pour toutes les lignes sur le côté gauche. J'ai vu cela dans Vim et dans d'autres éditeurs de texte. Comment dois-je procéder pour emacs?

Luc
la source
Méta discussion sur le balisage de cette question
Gilles 'SO- arrête d'être méchant'

Réponses:

31

Comme @ eric-brown l'a mentionné, vous pouvez l'utiliser M-x linum-mode.

Une autre bonne idée est d'utiliser (add-hook 'prog-mode-hook 'linum-mode)dans votre init.el pour activer automatiquement le mode linum dans tous les modes de programmation.

Pour la version Emacs> = 26, vous pouvez utiliser display-line-numbers-modeou global-display-line-numbers-mode.

Voir EmacsWiki

Maciej Goszczycki
la source
Cette réponse est obsolète, voir la réponse en utilisant display-line-numbers-mode.
ideasman42
Vous pourriez également trouver (global-display-line-numbers-mode)utile.
Lorem Ipsum
10

M-x linum-modefera l'affaire. Si vous souhaitez effectuer cela pour tous les tampons, alors cela M-x global-linum-modese fera.

Eric Brown
la source
Connaissez-vous un moyen de rendre cela permanent?
Luke
1
(selon la suggestion de nispio et mgoszcz2) l'ajout de (global-linum-mode)à votre fichier .emacs.d / init.el le rendra permanent. Je trouve que le mode global-linum est un peu excessif, et la suggestion de mgoszcz2 de ne l'activer que dans certains modes est bonne.
Eric Brown
7

Si vous utilisez Emacs 26 ou une version plus récente, vous pouvez utiliser display-line-numbers-mode.

de etc/NEWS.26:

** Emacs prend désormais en charge l'affichage facultatif des numéros de ligne dans le tampon. Ceci est similaire à ce que propose le «mode linum», mais beaucoup plus rapide et n'usurpe pas la marge d'affichage des numéros de ligne. Personnalisez la variable tampon-locale 'display-line-number' pour activer cet affichage optionnel. Alternativement, vous pouvez utiliser le mode mineur «display-line-numéros-mode» ou le global «global-display-line-numéros-mode». Lorsque vous utilisez ces modes, personnalisez 'display-line-number-type' avec la même valeur que vous utiliseriez avec 'display-line-numbers'.

Yasushi Shoji
la source
4

nlinum-modeest une autre option. Il a la même interface que linum-mode, vous pouvez donc utiliser les mêmes crochets, mais il utilise une technologie différente pour être plus performant. Citation de nlinum.el:

;; C'est comme le mode linum, mais utilise jit-lock pour être (espérons-le) plus efficace.

Vous pouvez l'installer via GNU Elpa via l'habituel list-packages.

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

fgeller
la source
1

C'est certainement linum-modeun bon choix. Si vous ne voulez pas toujours voir les numéros de ligne, comme moi, vous pouvez utiliser cette astuce de l'excellent What the .emacs.d !? Blog.

Cela est temporairement activé linum-modelorsque vous exécutez goto-line.

Voici le code de son 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
la source