gpt4 book ai didi

emacs - 着色当前行号

转载 作者:行者123 更新时间:2023-12-01 07:15:14 25 4
gpt4 key购买 nike

我正在使用 global-linum-mode对于行号。如果当前行的行号以不同的颜色(和/或不同的背景)突出显示,那就太好了。有人知道如何实现这一目标吗?

谢谢!

最佳答案

我从我之前对 Relative Line Numbers In Emacs 的回答中得出了这个答案,因为它处理在 linum 格式化过程中记住当前行号的相同问题。

我继承自 linum脸,但使用来自 hl-line 的背景颜色.如果前景和背景不能很好地匹配,你可以明确地分配一个前景色
M-x customize-face返回 my-linum-hl返回

(require 'hl-line)

(defface my-linum-hl
`((t :inherit linum :background ,(face-background 'hl-line nil t)))
"Face for the current line number."
:group 'linum)

(defvar my-linum-format-string "%3d")

(add-hook 'linum-before-numbering-hook 'my-linum-get-format-string)

(defun my-linum-get-format-string ()
(let* ((width (1+ (length (number-to-string
(count-lines (point-min) (point-max))))))
(format (concat "%" (number-to-string width) "d")))
(setq my-linum-format-string format)))

(defvar my-linum-current-line-number 0)

(setq linum-format 'my-linum-format)

(defun my-linum-format (line-number)
(propertize (format my-linum-format-string line-number) 'face
(if (eq line-number my-linum-current-line-number)
'my-linum-hl
'linum)))

(defadvice linum-update (around my-linum-update)
(let ((my-linum-current-line-number (line-number-at-pos)))
ad-do-it))
(ad-activate 'linum-update)

与其他答案一样,这在生成动态宽度方面比默认 dynamic 更有效。格式,但您可以通过注释掉 (add-hook linum-before-numbering-hook 'my-linum-get-format-string) 行来使用静态宽度以获得最大速度(并可选择修改 my-linum-format-string 的初始值以设置您的首选宽度)。

关于emacs - 着色当前行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com