Jak wyświetlić numery linii w emacsie (nie w linii trybu)?

27

Wiem, jak wyświetlać numery wierszy (i kolumn) w wierszu trybu, ale chciałbym, aby emacs wyświetlał numery wierszy dla wszystkich wierszy po lewej stronie. Widziałem to w vimie i innych edytorach tekstu. Jak to zrobić dla emacsa?

Luke
źródło
Meta dyskusja na temat otagowania tego pytania
Gilles „SO- przestań być zły”

Odpowiedzi:

30

Jak wspomniano @ eric-brown, możesz użyć M-x linum-mode.

Innym dobrym pomysłem jest użycie (add-hook 'prog-mode-hook 'linum-mode)w init.el, aby automatycznie włączyć tryb linum we wszystkich trybach programowania.

Dla wersji Emacsa> = 26 możesz użyć display-line-numbers-modelub global-display-line-numbers-mode.

Zobacz EmacsWiki

Maciej Goszczycki
źródło
Ta odpowiedź jest nieaktualna, patrz odpowiedź przy użyciu display-line-numbers-mode.
ideasman42
Może się również (global-display-line-numbers-mode)przydać.
Lorem Ipsum
10

M-x linum-modeda rade. Jeśli chcesz to M-x global-linum-modezrobić dla wszystkich buforów, zrobisz to.

Eric Brown
źródło
Czy znasz sposób, w jaki mogę uczynić to trwałym?
Łukasz
1
(zgodnie z sugestią nispio i mgoszcz2) dodanie (global-linum-mode)pliku .emacs.d / init.el spowoduje, że będzie on trwały. Uważam, że tryb globalnego linum jest nieco przesadny, a sugestia mgoszcz2 dotycząca włączenia go tylko w niektórych trybach jest dobra.
Eric Brown,
7

Jeśli używasz Emacsa 26 lub nowszego, możesz użyć display-line-numbers-mode.

z etc/NEWS.26:

** Emacs obsługuje teraz opcjonalne wyświetlanie numerów linii w buforze. Jest to podobne do tego, co zapewnia „tryb linum”, ale jest znacznie szybsze i nie przejmuje marginesu wyświetlania dla numerów linii. Dostosuj zmienną lokalną bufora „display-line-numbers”, aby aktywować ten opcjonalny wyświetlacz. Alternatywnie można użyć trybu podrzędnego „wyświetlanie-linii-liczb-trybów” lub globalnego „trybu globalnego wyświetlania-linii-liczb”. Korzystając z tych trybów, dostosuj „display-line-numbers-type-type” o takiej samej wartości, jak w przypadku „display-line-numbers-numbers”.

Yasushi Shoji
źródło
4

nlinum-modejest inną opcją. Ma taki sam interfejs jak linum-mode, więc możesz używać tych samych haków, ale używa innej technologii, aby być bardziej wydajnym. Cytat z nlinum.el:

;; To jest jak tryb linum, ale używa blokady jit, aby (miejmy nadzieję) być bardziej wydajnym.

Możesz zainstalować go za pomocą GNU Elpa w zwykły sposób list-packages.

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

Fgeller
źródło
1

Z pewnością linum-modejest to dobry wybór. Jeśli nie zawsze chcesz widzieć numery linii, takie jak ja, możesz skorzystać z tej sztuczki z doskonałego What .acac.d !? blog.

To tymczasowo włącza się linum-modepo uruchomieniu goto-line.

Oto kod z jego bloga:

(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)))
Pan Wacky
źródło