emacs在mac上异常退出

在mac上,打开emacs后,不显示minibuffer,此时通过菜单栏打开文件,滑动触摸板,会立刻异常退出。大佬们知道是什么原因吗?谢谢 macOS: Ventura 13.5.1 emacs:GNU Emacs 29.1 (emacs plus distribution) 跟着山人在一点点配置,所以没有加载过多的package。

附图:没有minibuffer

我的出现过不显示mode line 但是不会重启,29 build from source

看一下 backtrace?崩溃是严重bug,可以向上游报告。

29.1的Mac版确实问题比较大,似乎升级了一次,但还是有一堆bug

macOS从master分支上编译最新的emacs代码,稳的一批。

确实稳,而且现在Emacs30支持对图片进行像素滚动,又多了一个用 master 分支的理由。

请问这个特性怎么开启?

在Emacs中打开 pixel-scroll-precision-mode 就可以了。

(use-package pixel-scroll
  :config (pixel-scroll-precision-mode t))
1 个赞

mba的cpu太差,内存太少,怕cpu的压力大,没用过pixel级移动。

我用的是 2019的老 MBP,itel i9 CPU, 开启像素级滚动时确实会有较高的到CPU占用。

  1. macOS 下滚动图片时CPU占用最高会提高到 43%
  2. Windows 下滚动图片时有 8% 的 CPU占用

在mbp intel平台,用29.1和27对比测试,29.1性能非常差。

写了个脚本,emacs -Q启动,运行脚本打开同样四五十个c或者lisp文件然后关闭,29.1耗费时间基本是27的两倍,1.8倍左右。在linux平台上没这么大差别。

抽空再测试下30.

为啥我的体验正好相反呢 :joy:

我体验也相反

Emacs30直接打开就可以对图片像素滚动了?

可以,紫薯布丁

1 个赞

我测试了十几遍,包括跟emacs 26, 27比较,包括自己编译的,还有https://emacsformacos.com/上面下载的。测试结果基本一致。你们可以自己测试下,比较简单。

昨天晚上又测试了下30, 跟29差不多。

emacs -Q, 然后粘贴下面脚本运行:

(progn
  (setq enable-dir-local-variables nil
		enable-local-variables nil)

  (let* ((test-dir "~/source/emacs-git/lisp")
		 (file-list (directory-files test-dir t
									 "\\`[fw].*[.]el\\'" t))
		 (start-tm (current-time))
		 end-tm buf buf-list)

	(dolist (test-file file-list)
	  (setq buf (find-file-noselect test-file))
	  (with-current-buffer buf
		(goto-char (point-max)))
	  (setq buf-list (cons buf buf-list)))

	(setq end-tm (current-time))

	(dolist (buf buf-list)
	  (kill-buffer buf))

	(let ((delta (time-subtract end-tm start-tm)))
	  (message "--- files: %d, delta: %s"
			   (length file-list) (float-time delta)))))

不知道你编译用的什么参数,我没有仔细测试。但是从个人体验来看,有native-comp和tree-sitter加持,打开和编辑文件流畅不少,如果用lsp体验就会更加明显。另外,启动速度也有所提升,尤其是在Windows下,mscOS/Linux下不明显。你的测试数据中有看gc时间吗?

编译一般-O2或者-O3, 这个因素已经排除了,因为用emacsformacos网站下载的29对比过了,结果基本一样。

我没有更多排查,因为现在mac不是主力机,mac上娱乐为主,偶尔开一下emacs. 日常使用体验ok就好。

是的。直接支持,不用设置。最近 @oldosfan 大佬才修了这个问题。可惜 Emacs 29 没支持。