Как отобразить номера строк в emacs (не в строке режима)?

27

Я знаю, как отображать номера строк (и столбцы) в строке режима, но я бы хотел, чтобы emacs отображал номера строк для всех строк в левой части. Я видел это в vim и других текстовых редакторах. Как мне сделать это для Emacs?

Люк
источник
Мета-дискуссия о пометке этого вопроса
Жиль "ТАК, перестань быть злым"

Ответы:

31

Как упоминалось @ eric-brown, вы можете использовать M-x linum-mode.

Еще одна хорошая идея - использовать (add-hook 'prog-mode-hook 'linum-mode)в вашем init.el автоматическое включение linum-mode во всех режимах программирования.

Для версии Emacs> = 26 вы можете использовать display-line-numbers-modeили global-display-line-numbers-mode.

Смотрите EmacsWiki

Мацей Гошицкий
источник
Этот ответ устарел, см. Ответ с помощью display-line-numbers-mode.
ideasman42
Вы также можете найти (global-display-line-numbers-mode)полезным.
Лорем Ипсум
10

M-x linum-modeсделает свое дело. Если вы хотите применить это для всех буферов, то M-x global-linum-modeсделайте это.

Эрик Браун
источник
Вы знаете, как я могу сделать это постоянным?
Люк
1
(согласно предложению nispio и mgoszcz2) добавление (global-linum-mode)в ваш файл .emacs.d / init.el сделает его постоянным. Я считаю, что global-linum-mode немного чрезмерен, и предложение mgoszcz2 включить его только в определенных режимах является хорошим.
Эрик Браун
7

Если вы используете Emacs 26 или новее, вы можете использовать display-line-numbers-mode.

от etc/NEWS.26:

** Emacs теперь поддерживает опциональное отображение номеров строк в буфере. Это похоже на то, что обеспечивает 'linum-mode', но намного быстрее и не узурпирует поле дисплея для номеров строк. Настройте локальную переменную буфера 'display-line-numbers', чтобы активировать этот дополнительный дисплей. В качестве альтернативы вы можете использовать дополнительный режим 'display-line-numbers-mode' или глобальный 'global-display-line-numbers-mode'. При использовании этих режимов настройте «display-line-numbers-type» с тем же значением, которое вы использовали бы с «display-line-numbers».

Ясуши Сёдзи
источник
4

nlinum-modeэто еще один вариант. Он имеет тот же интерфейс linum-mode, что и вы можете использовать те же хуки, но он использует другую технологию для большей производительности. Цитата из nlinum.el:

;; Это похоже на режим linum, но использует (как мы надеемся) более эффективный jit-lock.

Вы можете установить его через GNU Elpa через обычный list-packages.

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

fgeller
источник
1

Конечно linum-mode, это хороший выбор. Если вы не всегда хотите видеть номера строк, как я, вы можете использовать этот трюк из превосходного Что .emacs.d !? блог.

Это временно включается linum-modeпри запуске goto-line.

Вот код из его блога:

(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)))
Мистер дурацкий
источник