emacs - 在 emacs 中更新字体锁定关键字而无需重新加载主要模式

标签 emacs common-lisp elisp slime font-lock

我正在对 SLIME 进行一些小修改,这样我就可以从 Lisp 获取所有当前加载的符号,分析它们并使字体锁定字体化它们。

我设法完成了所有这些步骤,但我有一个小问题 - 当字体锁定中的关键字列表发生变化时,缓冲区不会更新,除非您重新启动主要的 lisp 模式。我不想每次更新关键字时都重新启动 lisp-mode,因为我在 lisp-mode 上有几个钩子(Hook),我只想在第一次加载文件时运行它们。

是否有其他方法来更新字体锁定,以便它读取所有新关键字并相应地对缓冲区进行字体化?关闭字体锁定并使用 font-lock-fontify-buffer 并不能解决问题。

UPD:添加了赏金 - 问题仍然存在。我需要一种方法来重新加载字体锁定关键字而不重新加载主要模式。

最佳答案

好吧,这样怎么样:

(defun my-font-lock-restart ()
  (interactive)
  (setq font-lock-mode-major-mode nil)
  (font-lock-fontify-buffer))

关于emacs - 在 emacs 中更新字体锁定关键字而无需重新加载主要模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1431843/

相关文章:

emacs - Emacs选项卡的全局配置

emacs - 如何使迷你缓冲区窗口变大?它不够大,默认显示向上/向下箭头

clojure - Common Lisp 中的原子和符号有什么区别?

macos - Mac OS X 是否带有内置于 Emacs 的 Lisp 环境?

emacs - Emacs 中的 eval 命令到其他缓冲区

emacs - 如果我有一个文件和一个 diff,而不是同一文件的两个版本,我可以使用 ediff 吗?

emacs - 选择窗口时做一些事情

performance - (Lisp) 我可以让它更有效率吗?

emacs - Emacs 中注释的错误缩进