如何强制emacs重新着色

时间:2011-11-02 15:30:51

标签: emacs configuration syntax-highlighting visual-glitch

每隔一段时间,Emacs在语法高亮处失败,并且着色在缓冲区中变得非常时髦。有没有办法强迫Emacs“重新着色”语法?试试看?我不介意花一点时间。

2 个答案:

答案 0 :(得分:9)

我认为M-x font-lock-fontify-buffer会做你想要的。或者选择一个地区并执行M-o M-o(或M-x font-lock-fontify-block)。

答案 1 :(得分:0)

我曾写过以下简单函数将缓冲区重置为自然模式,对其进行修改,将光标所在的行放到屏幕中心,禁用菜单栏,禁用工具栏并移动向左滚动条。

(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;似乎这可能是这个函数的更好的键绑定。