我希望我的linum-mode
编号是正确对齐的。我发现最接近的是emacswiki,但它不起作用 - 似乎左对齐数字而不是右对齐它。 The snippet is found here。很抱歉可怕的缩进,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)))
有什么想法吗?
答案 0 :(得分:19)
您可以使用值'dynamic
,这样您就不必选择任意数量的填充:
(custom-set-variables '(linum-format 'dynamic))
或者您也可以使用M-x customize-variable RET linum-format
此外,@ asmeurer询问如何使用dynamic
在号码后面添加空格。没有简单的方法可以做到这一点,但可以使用defadvice
围绕{I} 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))
答案 1 :(得分:4)
自定义变量linum格式,例如在7个字符的右侧对齐:
(custom-set-variables '(linum-format (quote "%7d")))
答案 2 :(得分:-2)
将linum.el和byte-compile-file更改为.elc。
对于emacs 23.3
linum.el的第143行
(concat "%" (number-to-string w) "d" " | ")))))
我将默认堡垒更改为“xxx |”。