gpt4 book ai didi

Emacs hl-line : change color locally

转载 作者:行者123 更新时间:2023-12-04 20:17:44 27 4
gpt4 key购买 nike

我通常让 hl-line 对当前背景采用稍暗的阴影。这在编辑缓冲区时效果很好。但是,在某些缓冲区中,例如 Org 议程和 Gnus 组缓冲区,我想使用更漂亮的颜色(代替光标)。

具体来说,我想更改 gnus-hl-line 中 hl-line 的颜色,而不影响其他缓冲区中 hl-line 的颜色。

(add-hook 'gnus-summary-mode-hook 'gnus-hl-line)
(add-hook 'gnus-group-mode-hook 'gnus-hl-line)

(defun gnus-hl-line ()
(hl-line-mode 1)
(set (make-local-variable 'line-move-visual) nil)
(setq cursor-type nil))

谢谢,

使用 Phil 的建议的最终解决方案。它大部分时间使用中性 hl 线,但有时粗 hl 线是可观的,例如在 Gnus 和组织议程中
;; From emacs-wiki:
(defun shade-color (intensity)
"print the #rgb color of the background, dimmed according to intensity"
(interactive "nIntensity of the shade : ")
(apply 'format "#%02x%02x%02x"
(mapcar (lambda (x)
(if (> (lsh x -8) intensity)
(- (lsh x -8) intensity)
0))
(color-values (cdr (assoc 'background-color (frame-parameters)))))))

;; Default hl
(global-hl-line-mode t)
(make-variable-buffer-local 'global-hl-line-mode)
(set-face-background hl-line-face (shade-color 08))

(defface hl-line-highlight-face
'((t :inherit highlight))
"Face for highlighting the current line with `hl-line-fancy-highlight'."
:group 'hl-line)

(defun hl-line-fancy-highlight ()
(set (make-local-variable 'hl-line-face) 'hl-line-highlight-face)
;; (set (make-local-variable 'line-move-visual) nil)
;; (set (make-local-variable 'cursor-type) nil)
(setq global-hl-line-mode nil)
(hl-line-mode))

(add-hook 'org-agenda-mode-hook 'hl-line-fancy-highlight)
(add-hook 'gnus-summary-mode-hook 'hl-line-fancy-highlight)
(add-hook 'gnus-group-mode-hook 'hl-line-fancy-highlight)

最佳答案

hl-line-face是一个包含用于 hl-line-mode 的人脸的变量,因此我们可以在这些模式下将该变量设为缓冲区本地,并为其分配一个新的自定义面。

您可以像这样创建一个新面孔:

(defface gnus-hl-line
'((t :inherit hl-line))
"Face for highlighting the current line with `gnus-hl-line'."
:group 'hl-line)

并使用 M-x 自定义 customize-face返回 gnus-hl-line可再生能源

然后将此添加到您的 gnus-hl-line 中函数(在调用 hl-line-mode 之前似乎是最明智的)。

(set (make-local-variable 'hl-line-face) 'gnus-hl-line)

关于Emacs hl-line : change color locally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239037/

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