[英]Right align line numbers with linum-mode?
我希望我的linum-mode
编号是右对齐的。 我发现的最接近的东西是在 emacswiki 上,但它不起作用 - 它似乎是左对齐数字而不是右对齐。 该片段可在此处找到。 对不起,可怕的缩进,lisp 对我来说很陌生:)
(setq linum-format
(lambda (line)
(propertize
(format
(let
((w (length (number-to-string (count-lines (point-min)
(point-max))))))
(concat "%" (number-to-string w) "d ")) line) 'face 'linum)))
有任何想法吗?
您可以使用值'dynamic
因此您不必选择任意数量的填充:
(custom-set-variables '(linum-format 'dynamic))
或者您也可以使用以下命令对其进行自定义: Mx customize-variable RET linum-format
此外,@ asmeurer询问如何在dynamic
数字后面添加一个空格。 没有简单的方法可以做到这一点,但它可以使用defadvice
linum-update-window
函数的linum-update-window
来完成,我根据已经在该函数中的dynamic
代码进行了改编:
(defadvice linum-update-window (around linum-dynamic activate)
(let* ((w (length (number-to-string
(count-lines (point-min) (point-max)))))
(linum-format (concat "%" (number-to-string w) "d ")))
ad-do-it))
自定义变量linum格式,例如在7个字符的右侧对齐:
(custom-set-variables '(linum-format (quote "%7d")))
2022年,对于Emacs 28.1,命令为:
(setq linum-format 'dynamic)
将linum.el和byte-compile-file更改为.elc。
对于emacs 23.3
linum.el的第143行
(concat "%" (number-to-string w) "d" " | ")))))
我将默认堡垒更改为“xxx |”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.