有时候Emacs无法正确进行语法高亮,导致缓冲区中的颜色出现问题。是否有任何方法可以强制Emacs“重新着色”?只是尝试重做?即使需要一点时间也可以。
有时候Emacs无法正确进行语法高亮,导致缓冲区中的颜色出现问题。是否有任何方法可以强制Emacs“重新着色”?只是尝试重做?即使需要一点时间也可以。
我认为 M-x font-lock-fontify-buffer
可以实现你想要的功能。或者选择一块区域,然后执行 M-o M-o
(或者 M-x font-lock-fontify-block
)。
(defun --normal-mode-no-gimmicks ()
"Enable buffer `normal-mode' and refontify.
Disable frame menu, toolbar, scrollbars."
(interactive)
(menu-bar-mode 0)
(tool-bar-mode 0)
(set-scroll-bar-mode 'left)
(toggle-scroll-bar 1)
(normal-mode) (recenter-top-bottom)
(font-lock-fontify-buffer))
当模式改变,Emacs突然显示菜单栏或其他问题出现时,这将非常有用。然后我只需按下M-g g
来修复它。
(global-set-key [?\M-g ?g] '--normal-mode-no-gimmicks)
我之前不知道 M-o M-o
这个快捷键,看起来这可能是更好的绑定方式。
font-lock-add-keywords
加载缓冲区后进行的任何更改。要应用这些更改,您需要执行M-x normal-mode
或M-x revert-buffer
。 - Mark