将启用相对行号添加到 init.el

Add enabling Relative Line Number to init.el

在 Emacs 26.x 中,如何让 Emacs 以默认打开的相对行号启动?

我尝试使用C-x h,然后点击菜单项,帮助显示如下

<menu-bar> <options> <showhide> <display-line-numbers> <relative> 
runs the command #[nil "01!023!7"
[menu-bar-display-line-numbers-mode relative message "Relative line
numbers enabled"] 2 nil nil] (found in global-map), which is an
interactive compiled Lisp function.

所以尝试将命令添加到 init.el 中作为

(menu-bar-display-line-numbers-mode relative message "Relative line
numbers enabled")

我该如何进行这项工作?

不幸的是,在这种情况下,Emacs 的帮助信息非常糟糕。菜单按钮绑定到一个匿名函数,帮助系统基本上显示该函数的字节编译版本。我得到了 Emacs 源代码,搜索了外观独特的字符串 "Relative line numbers enabled",并在 lisp/menu-bar.el:

中找到了该函数
   (lambda ()
     (interactive)
     (menu-bar-display-line-numbers-mode 'relative)
     (message "Relative line numbers enabled"))

所以你可以使用 menu-bar-display-line-numbers-mode 来设置它:

(menu-bar-display-line-numbers-mode 'relative)

设置它的规范方法是将 display-line-numbers-mode 添加到模式挂钩,

(add-hook 'foo-mode-hook #'display-line-numbers-mode)

或者启用 global-display-line-numbers-mode 如果你希望它们无处不在,

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

并将 display-line-numbers-type 设置为所需的样式:

(setq display-line-numbers-type 'relative)