禁用行号但在程序模式和文本模式下允许它们

Disable line numbers but allow them in prog-mode and text-mode

我想在 Emacs 中禁用行号,因为在 Org-mode、终端、mu4e、elfeed 等中使用它们看起来很难看。

所以我删除了这个:

(global-display-line-numbers-mode t)

现在我想知道是否可以只为 prog-mode 和最终的纯文本文件(但不是 Org)启用行号,我认为那是 text-mode.

欢迎任何建议。

  (dolist (mode '(text-mode-hook
                  prog-mode-hook
                  conf-mode-hook))
    (add-hook mode (lambda () (display-line-numbers-mode 1))))

您只需要使用挂钩为相应的模式启用它们。钩子需要使用 t 作为参数调用 display-line-numbers-mode 来启用此模式。我个人更喜欢将钩子的代码放在一个单独的函数中,如果需要可以在任何时间重新定义它,就像这样(大多数编程模式进入文件时都会调用这个钩子):

(defun my-display-numbers-hook ()
  (display-line-numbers-mode t)
  )
(add-hook 'prog-mode-hook 'my-display-numbers-hook)

同样,您可以为 text-mode 执行此操作 - 它将为所有基于 text-mode 的文件启用:

(add-hook 'text-mode-hook 'my-display-numbers-hook)