Spacemacs 在 moon branch 的最新改动:
使用了 emacs 27.1 的一个未合并分支的 feature,将 emacs dump 到一个文件中。
用户需要编译一个 27 版本的 emacs,按原来方式启动 emacs 后会自动根据 layer dump,然后用 emacs 27 启动 spacemacs。
会以 asnyc 的方式调用 emacs dump (我还没试,不知道具体什么效果)
说明文件:
https://github.com/syl20bnr/spacemacs/blob/moon/EXPERIMENTAL.org
想想还有点小激动,虽然我的 emacs 几天才关一次。
我觉得这个功能最主要的卖点在于 portable 吧?把 dump 的文件随便拷贝,然后随身携带可以快速启动的 spacemacs,好像会很爽。
1 个赞
总结一下:
目前 emacs 的维护者 Eli 威胁要退出 emacs 维护,如果 dumper 方案被采用。RMS 等多数开发者倾向于采用这一方案。所以,对我等小白,管他呢,只管用。
1 个赞
看到 spacemacs 添加了 --force-dump
参数,我有一点疑问,如果更新了 elisp 包,需要强制重新 dump 吗?
完全可以选择不用。加载了 dump image 以后还可以加载别的包的。
从自己使用情况看, 启动时间不是大问题, 问题是desktop加载200个文件太耗时了, 文件是否可以延时加载? 跟autoload类似, 比如一个文件的buffer是存在, 但是buffer的内容不存在(没有加载), 切换到改buffer的时候才加载对应的文件
这是该提案刚开始的时候, 现在人家态度已经不一样了
把 buffer list 换成 resent file list 就行。
recentf被我hack过了, 这些会话文件都不在recent list里, recent list里我用来记录偶尔用一次并关闭的文件(已经有很多了), 我的文件分两类: 1. 常开的, 2. 偶尔开一次的, 但会反复打开.
emacs原生支持这个功能应该不是很麻烦.
那可以搞第二个 “resent file list” 啊
那就是desktop buffer list了, 那要hack desktop, 老了, 没时间hack了
有心想尝尝鲜,结果没进去,直接 seg fault 了……
Fatal error 11: Segmentation fault
Backtrace:
/home/jw/git/emacs/src/emacs[0x4fb479]
/home/jw/git/emacs/src/emacs[0x4e1817]
/home/jw/git/emacs/src/emacs[0x4f9dde]
/home/jw/git/emacs/src/emacs[0x4fa0e3]
/home/jw/git/emacs/src/emacs[0x4fa120]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7fe02b8f4390]
/home/jw/git/emacs/src/emacs[0x4f6339]
/home/jw/git/emacs/src/emacs[0x55e5d6]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e12a]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e12a]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e12a]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e12a]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x5602c3]
/home/jw/git/emacs/src/emacs[0x55e5d6]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x599b68]
/home/jw/git/emacs/src/emacs[0x55e533]
/home/jw/git/emacs/src/emacs[0x55e668]
/home/jw/git/emacs/src/emacs[0x50fad7]
/home/jw/git/emacs/src/emacs[0x506658]
/home/jw/git/emacs/src/emacs[0x411c54]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fe02abf3830]
/home/jw/git/emacs/src/emacs[0x412c79]
Segmentation fault (core dumped)
也就是 dump 的时候先关闭,dump 完了再打开?运行 dump 的时候用关闭吗?