我使用light-symbol.el在页面上显示光标所在的匹配符号。除了完全从原始颜色方案中剥离匹配符号然后突出显示背景外,它一直运行良好。我试图错过代码,让它只突出显示背景而不重置符号的颜色,但没有成功。 任何帮助表示赞赏。 以下是来自light-symbol.el的相关代码:
(defun light-symbol-refontify ()
(unless font-lock-mode
(font-lock-mode 1))
(font-lock-fontify-buffer))
(defun light-symbol-show-symbol ()
(when (and light-symbol-mode
;; FIXME: this should prevent us from changing when
;; isearch is running but does not... ?
(not this-command))
(let ((refontify nil))
(when light-symbol-previous-symbol
(font-lock-remove-keywords nil light-symbol-previous-symbol)
(setq refontify t))
(let ((sym (thing-at-point 'symbol)))
(if sym
(progn
(set-text-properties 0 (length sym) nil sym)
(setq light-symbol-previous-symbol
(list (list
(concat light-symbol-rx-start
(regexp-quote sym)
light-symbol-rx-end)
(list 0 (list 'quote light-symbol-face) t))))
(font-lock-add-keywords nil light-symbol-previous-symbol)
(setq refontify t))
(setq light-symbol-previous-symbol nil)))
(if refontify
(light-symbol-refontify)))))
(defun light-symbol-pre-command ()
(when light-symbol-previous-symbol
(font-lock-remove-keywords nil light-symbol-previous-symbol)
(setq light-symbol-previous-symbol nil)
(light-symbol-refontify)))
这是图书馆的链接: https://raw.github.com/nealford/emacs/master/elpa/light-symbol-0.1/light-symbol.el
答案 0 :(得分:1)
如果你注释掉这一行:
(set-text-properties 0 (length sym) nil sym)
这可能会满足您的要求。我不知道它是否是一个强大的解决方案,因为我不知道为什么这样做是首先。
显然,如果文字颜色与浅色符号脸部背景类似,则您将无法阅读。
如果你想控制前景色以防止低对比度问题,你可以defface
自定义脸部(或者找到一个适当的现有脸部来设置前景和背景;总是假设你不要我想弄乱hi-blue
脸部,并将light-symbol-face
改为。
然而,这可能与你开始时的情况没有太大的不同。