Mac上总是闪屏,这是怎么回事

Mac下用的spacemacs,用brew cask install emacs装的。 经常闪屏,没啥规律,这个能解决吗?

Mac 的 emacs 是这样的,魔改过的 emacs-port 不怎么闪,你可以装那个试试

你是全屏使用的吗?

试一下这个,能有效改善闪屏问题

我刚升级后,原生Emacs也有闪屏问题,非常严重那种(有几种改造版不闪,但我只用原生的)。定位了下是下面这个设置导致的:

;; stop cursor blinking bug when typing Chinese/Japanese on OS X
(setq redisplay-dont-pause nil)

这个本来是非常好的一个tweak,用来消除用外置输入法输入中文时光标闪烁的问题,但26.3之后(Emacs应该更新了相关的东东),会引起整个Emacs屏幕的闪烁,注释掉就好了。

对,全屏使用的

全屏使用就是child-frame的锅。 把ns-use-native-fullscreen设成nil就行了

全屏使用要用下面的代码来启动:

(if (featurep 'cocoa)
    (progn
      (setq ns-use-native-fullscreen nil)
      (setq ns-use-fullscreen-animation nil)

      (set-frame-parameter (selected-frame) 'fullscreen 'maximized)

      (run-at-time "2sec" nil
                   (lambda ()
                     (toggle-frame-fullscreen)
                     )))
  (require 'fullscreen)
  (fullscreen))

Mac对Emacs的全屏支持有bug

此问题在emacs的bug列表里反馈过,没有解决。但是输入法闪烁问题在27已经基本解决。

最近两版macos底层图形部分变化较大,导致emacs图形部分代码改动很大,现在还有问题,有时候闪烁,有时候窗口变空白,体验不佳。27上估计很难解决了,28上好像大改了一下,有所好转,但是性能降低很多。