Emacs 28.2 发布了!

第一时间拉下源码编译!

1 个赞

自己编译的话直接上29吧,稳的一批

最近29多了好多warning,不知道开发者为啥非要去掉那些兼容代码全部换成告警,比如nil face就极度影响性能。

1 个赞

发现mac上编不过emacs-plus 28.2,尴尬了~~~

同感,太影响使用了。

包作者又没法为了兼容 29 就去更新代码,因为还要兼容 28以及之前的版本。

我有好几个需要用到的功能,必须上 29,不然都考虑用 28了。

我这这么多警告:

Warning: setting attribute ‘:foreground’ of face ‘link’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘header-line’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘mode-line-buffer-id’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diff-header’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diff-file-header’: nil value is invalid, use ‘unspecified’ instead.
Package autoload is deprecated
Warning: setting attribute ‘:background’ of face ‘diredfl-dir-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-exec-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-executable-tag’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-flag-mark-line’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-link-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-no-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-other-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-rare-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-read-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘diredfl-write-priv’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:foreground’ of face ‘message-header-cc’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘message-header-newsgroups’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:foreground’ of face ‘message-header-other’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘message-header-other’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘message-header-name’: nil value is invalid, use ‘unspecified’ instead.
Warning: setting attribute ‘:background’ of face ‘which-func’: nil value is invalid, use ‘unspecified’ instead.

不止这些,还会不停的反复出现,很是无语。看了commit,感觉根本没有必要。不知道还有什么样的考虑。

你是因为哪几个功能吸引你呢?

主要是下面几个刚需的功能:

  1. pixel-scroll-precision-mode, 像素级滚动(我在 macOS 上用的多),能够像浏览器一样顺滑地通过触摸板滚动屏幕。
  2. 内置支持 sqlite,我用 org-roam 和 epkg 都依赖 sqlite
  3. 在 Windows 上支持直接切换系统输入法的中英文状态,配合 sis 使用性能更好。
    (PS:这个功能在 Emacs 28.1 已经开始有了)

还有 2个我提的 issue 在 29 修复了:

  1. desktop.el 和 saveplace.el 一起使用时,在 Windows 系统支持 UTF-8 以外的 unicode 编码(比如 UTF-16)
  2. project.el 在对git子模块解析有问题,如果字模块的 .gitmodules 文件中有如下格式时,无法解析 load-path = .
[submodule "org-roam"]
	load-path = .
	load-path = extensions
	path = lib/org-roam
	url = [email protected]:org-roam/org-roam.git

我因为使用 Borg 这个包管理器包的安装,是需要这样使用子模块,才能安装包子目录下的插件。

2 个赞

是啊,这种警告每次启动都出现。如果只是编译包的时候出现是无所谓的。

  1. mac上推荐用mos
  2. 暂时用emacs-sqlite,没感觉多大区别。

系统输入法确实就没办法了,只能上29.

你说的是 emacs-mac ?

我试过,滚动没有 pixel-scroll-precision-mode 顺滑。

内置 emacs-sqlite 确实看不到肉眼能察觉的性能提升,只是少编译一个动态模块。

不是emacs-mac,是这个,全局平滑滚动,效果杠杠的

Caldis/Mos: 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently for your mouse on macOS (github.com)

3 个赞

:+1:多谢分享,还有这样的好工具。

看来用这个不仅 Emacs, iterm2 也可以平滑滚动了。

PS: 尝试了下 mos,还是 Emacs 29 的 pixel-scroll-precision-mode 更加顺滑,用习惯了。

参数是可调的,也有黑名单,看你个人习惯了。

1 个赞

原来不是我的问题,我最近更新到 29 的时候,就被一堆兼容代码的 warning 吓退

你不是一个人…… :joy:

emacs 28 在 Windows10 下就有切换输入法中英文状态的函数了!

崩溃的问题解决了吗?谁帮忙试一下我这个必现的配置:

emacs 29 可能很稳,但第三方包就说不定了。

是的,28 就有了。是我记错了。 多谢提醒
因为我是直接从 27 → 29, 基本没用过 28 :grinning:

自从之前改了face,29 我用了几个月,包括gccems和正常版本,总体来说还是比较正常。但最近升级后实在受不了各种不兼容告警,似乎又进入一个开发高峰期。用28.2目前感觉良好,稳定了许多。