繁体   English   中英

将行号与 linum 模式右对齐?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM