我对字体锁定模式如何参与感到困惑。我没有在 my 中启动字体锁定模式的声明init.el
,但显然它始终作为次要模式运行。此外,我还有以下功能:
(defun testregexfunc ()
(interactive)
(make-variable-buffer-local 'font-lock-extra-managed-props)
(add-to-list 'font-lock-extra-managed-props 'invisible)
(font-lock-add-keywords nil
'(("\\(\\[\\)\\([a-zA-Z0-9_]+\\)\\(\\]\\)"
(1 '(face nil invisible t))
(3 '(face nil invisible t))))))
它使用字体锁定特定的东西。M-x testregexfunc
但它只在我执行两次后才生效M-x font-lock-mode
。第一次禁用字体锁定模式第二次启动它。但它现在没有作为主要模式运行,因为缓冲区仍然显示缓冲区之前的任何模式。好的,所以我猜该函数设置了一些值,并且仅在模式重新启动后才生效。我想也许我需要像这样在字体锁定模式中添加一个钩子:
(add-hook
'font-lock-mode
'testregexfunc)
不……什么都不做。我需要做什么才能不必重新启动字体锁定模式才能使该功能正常工作?
我从这里得到了这个功能并对其进行了一些修改。我不理解它的大部分定义,关于字体锁定的文档对我并没有太大帮助:
https://emacs.stackexchange.com/questions/28154/using-font-lock-regexp-groups