开启多个Emacs daemon

我们都知道使用 emacs --daemon 可以让你的Emacs打开更快,但是其实daemon是可以穿入参数的,可以使用

emacs --daemon=coding;
emacs --daemon=misc;

连接时

alias e="emacsclient -t --socket-name=coding"
alias ec="emacsclient -c --socket-name=coding &"
alias em="emacsclient -c --socket-name=misc &"
alias se="SUDO_EDITOR=\"emacsclient -t --socket-name=coding\" sudo -e"

关闭

emacsclient -e --socket-name=coding '(kill-emacs)';
emacsclient -e --socket-name=misc '(kill-emacs)';

pros

  • 当处理一些任务时Emacs经常卡死,就需要重启,那么很多与这个任务无关的任务也被迫中断。比如可以把Gnus,IRC 等任务放在另一个Emacs进程里。
  • 多个任务间不会相互污染buffer列表(使用过perspective-mode,it sucks)。

cons

  • 需要更多的内存
  • 需要管理不同的守护进程

PS:

如果遇到处理frame的问题,比如字体和外观,也许这个链接能帮的上忙

https://github.com/purcell/emacs.d/blob/master/lisp/init-frame-hooks.el

9 个赞