有什么方法加速emacs的启动?

如题,除了排除不必要的package外。 据说可以“开启emacs的服务”,我不是很了解,请大家指教

开机后台运行 emacs --daemon

如在 .xporfile/.xinitrc里加入exec emacs --daemon &

之后使用emacsclient 打开文件,一般就是秒开

不过emacsclient也会有一些自己的问题,所以在emacs启动速度优化到1s左右就主要还是用emacs冷启动了

2 个赞
3 个赞

使用use-package加载插件,参考spacemacs.

2 个赞

可以把一些东西延迟加载,可以用 use-package, with-eval-after-load 或者 xxx-mode-hook 来做。

尽量使用 autoload ,而不是直接 require package,这个 use-package 也可以非常方便地做到。

2 个赞

表示已经离不开 emacs 服务了,emacsclient 瞬间开启,随手编辑小文件都可用emacs来干了。

另外,可以直接启动 emacsclient, 加上 --alternate-editor “” 参数,如果启动过emacs服务会自动启动一个emacs服务,而且退出emacsclient后,emacs服务仍然会继续运行,也就是说开机后第一次启动emacsclient需要等一下,以后就是秒开了。这样有一个好处,如果开机不是为了编辑文件的话,就不会有一个emacs进程了,节省一点点资源。

对了,emacs25会支持socket激活,效果应该差不多,可以期待一下。

3 个赞

天哪!这就是我想要的效果啊!

我的zsh 配置,把emacs daemon 启动,然后用client 一般都秒开,唯一的不足是更新什么配置,要每次重头启动一次

alias emsd='emacs --daemon'

alias ems='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -t -a ""'

alias emsdq='/Applications/Emacs.app/Contents/MacOS/bin/emacsclient --eval "(kill-emacs)"'

这是我的 .bashrc

alias emacsd='emacs --daemon'
alias ec='emacsclient -c -n'
alias et='TERM=xterm-256color emacsclient -t'