【问题标题】:How to force emacs recolor如何强制emacs重新着色
【发布时间】:2011-11-02 15:30:51
【问题描述】:

Emacs 每隔一段时间就会在语法高亮方面失败,并且着色在缓冲区中变得很时髦。有什么方法可以强制 Emacs “重新着色”语法?试试看?我不介意需要一点时间。

【问题讨论】:

    标签: emacs configuration syntax-highlighting visual-glitch


    【解决方案1】:

    我认为M-x font-lock-fontify-buffer 会满足您的需求。或者选择一个地区并执行M-o M-o(或M-x font-lock-fontify-block)。

    【讨论】:

    • 谢谢乔恩!工作得很好。我知道肯定只是缺少一些 Emacs 词汇:“Fontify”。
    • 没问题!很高兴它很有用。
    • 这(当前)不考虑通过调用(例如,在 scratch 缓冲区中)font-lock-add-keywords 加载缓冲区后所做的任何更改。要应用这些,您需要执行M-x normal-modeM-x revert-buffer
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多