今天在 Linux 中升级了 Emacs 27到最新版本,发现user-init-file
默认值居然变了,是~/.config/emcas/init.el
,而不是以前的~/.emacs.d/init.el
。搜索 chang log 没找到相关内容。有同学碰到吗?
好像是这样,我在irc里看到人们正说这个
是什么原因呢?闲着没事改这个干嘛呢?
不知道,反正我电脑里好多软件的配置文件貌似都放到.config里了,另外还有个目录.local,一些生成的文件比如缓存索引也统一到这个目录里。莫非是有新的规范?
https://lists.gnu.org/archive/html/emacs-devel/2019-08/msg00624.html
应该是一个maintainer自作主张推上去的。估计会被revert
我也认为很无厘头,也没有必要。其他 OS 上又没有这样的习惯,会造成不一致。maillist 里这位说得很客观,应该改回去才是。
可以暂时在early-init改回去
如果这个环境变量是 shell 登录时才读取的话,那么通过 xsession 启动的 emacs 读不到这个环境变量。
看起来是一位冲动型的 maintaner,想干就干,不计后果。
后边还有一位指出,其实改得不彻底,启动时依然会创建 ~/.emacs.d
是啊,关键是不讨论就 merge 了,实在有点无语
我记得这个是没有.emacs.d的时候才改成.config
感觉Emacs的开发还有待规范化, 比如这个bug https://lists.gnu.org/archive/html/emacs-devel/2019-09/msg00026.html
这个补丁的作者在添加noinline功能的时候忘记常规函数不能直接被setf展开,需要额外定义setter,结果导致用noinline定义的struct的accessor没法用setf来赋值。
这种情况如果有写测试,CI跑一下立刻就能发现,引入这个bug的提交是4月份的,结果现在9月份,我闲的无聊用macrostep看cl-defstruct的时候才发现。
救救FSF
最后那句话不用划掉
在cireu的链接里偶然点到一封教主的mail,里面贴了个有趣的链接:
EEE骚操作是真的很effective
教主反对一切中心化的项目,github也不例外,哈哈
因为我没钱,只能喊口号,但是又觉得慷他人之慨不妥
他 改 变 了 init 文 件 位 置
- 首先假定目录为
~/.config/emacs
- 如果存在环境变量
XDG_CONFIG_HOME
用这个代替~/.config - 如果从XDG convention找不到emacs/init.el,那么寻找传统的home目录下的
~/.emacs.d/init.el
或者~/.emacs
,另外emacs现在还会把~/.emacs.el
纳入考虑 - 如果都找不到,使用XDG convention的目录建立配置文件夹
另外,现在允许用户在early-init.el任意修改emacs配置文件夹变量
我觉得这人就是闲着没事干,不如改进改进其他的地方