按键后延迟500毫秒才生效,感觉很明显,按住方向键不松,emacs没反应,一直到松开的时候,直接跳到头,没有中间过程。
看cpu占用率也不高。同样系统同样配置,emacs25没问题,响应很灵敏。
---------------------------问题结果-----------------------
Linux GUI版本的emacs有个bug, 具体见 http://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00826.html.
不单影响到undo-tree, helm的启动速度原来也受它影响, 一直以为是helm性能问题, 原来不是.
emacs26上解决办法:
(setq x-wait-for-event-timeout nil)
设置之后, helm启动速度媲美ivy, 完美.
另外,最近还遇到几次company-mode的补全窗口出现在非预期的位置,childframe和overlay两种都遇到过。
25的时候也没遇到这么多问题,本来准备用26了,却这么多问题。
你是什么系统,版本多少?你说的问题我都没有遇到过。macOS 10.13.3/Windows 10 1079/Ubuntu 16.04 LTS + Emacs 26.0.91.
没有重新编译, 直接再终端里运行没问题(emacs -nw)
重新编译了emacs25, 还是没有问题, 应该不是gtk的问题了, 应该是26的问题
跟踪调试了一下, 发现是switch-to-buffer-other-window这个函数的问题, 每次调用竟然需要0.1秒, 而undo-tree每次undo会调用两次.
emacs -Q启动时, 一个文件都不打开, 该函数依然耗时0.1秒. 已经向上游反馈了.
有可能是Centos 7上自带的gtk2的问题, 但是emacs25就没有问题.
临时解决办法:
(setq x-wait-for-event-timeout nil)
1 个赞