如果在暂存缓冲区中粘贴和评估,则以下代码无法突出显示23
's 23-23
,但如果在文本缓冲区中完成则不会。
;; Example 1
'(1234 23 23-23 end)
(progn
(font-lock-add-keywords nil
`(("\\b23\\b"
(0 'success))
"end"))
(font-lock-fontify-buffer))
为什么M-x isearch-forward-regexp RET \b23\b
仍然匹配23
时会失败23-23
?
即使我更改为以下代码,也只会突出显示第23
一个23-23
。
;;; Example 2
'(1234 23 23-23 end)
(progn
(font-lock-add-keywords nil
`((,(rx (or word-boundary
"-")
(group "23")
(or word-boundary
"-"))
(1 'success))
"end"))
(font-lock-fontify-buffer))
旁注:“结束”在那里,以便我可以检测 23 的荧光笔是否形成不良。如果格式不正确或无提示地发出错误信号,则 end 不会突出显示。
;;; Example 3 (with xy instead of 23. also passing t and 'append.)
;;; if evaluated in the scratch buffer, it doesn't highlight xy in xy-xy
'(wxyz xy xy-xy end)
(progn
(font-lock-add-keywords nil
`(("\\bxy\\b"
(0 'success t))
"end")
'append)
(font-lock-fontify-buffer))