【发布时间】:2011-11-02 15:30:51
【问题描述】:
Emacs 每隔一段时间就会在语法高亮方面失败,并且着色在缓冲区中变得很时髦。有什么方法可以强制 Emacs “重新着色”语法?试试看?我不介意需要一点时间。
【问题讨论】:
标签: emacs configuration syntax-highlighting visual-glitch
Emacs 每隔一段时间就会在语法高亮方面失败,并且着色在缓冲区中变得很时髦。有什么方法可以强制 Emacs “重新着色”语法?试试看?我不介意需要一点时间。
【问题讨论】:
标签: emacs configuration syntax-highlighting visual-glitch
我认为M-x font-lock-fontify-buffer 会满足您的需求。或者选择一个地区并执行M-o M-o(或M-x font-lock-fontify-block)。
【讨论】:
font-lock-add-keywords 加载缓冲区后所做的任何更改。要应用这些,您需要执行M-x normal-mode 或M-x revert-buffer。
我曾经写过以下简单的函数来将缓冲区重置为其自然模式,重新字体化,将光标所在的行带到屏幕中心,禁用菜单栏,禁用工具栏并移动向左滚动条。
(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;似乎这可能是此功能的更好的键绑定。
【讨论】: