文章

emacs作为守护进程启动

emacs支持作为守护进程启动,然后通过emacsclient进行链接,这样的话可以加快编辑器启动速度

但是估计是因为用户权限原因,守护进程和emacsclient似乎是一对一的,跟每个用户账号有关系

所以在ubuntu下,root用户和常规用户似乎要启动两个emacs守护实例

常规用户启动emacs守护进程

创建以下文件

~/.config/systemd/user/emacs.service

[Unit] Description=Emacs text editor Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/ [Service] Type=forking ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)" Environment=SSH_AUTH_SOCK=%t/keyring/ssh Restart=on-failure [Install] WantedBy=default.target

然后执行systemctl命令来启动服务并设置开机启动,注意添加–user参数

systemctl enable --user emacs systemctl start --user emacs

root用户启动emacs守护进程

创建以下文件

/etc/systemd/system/emacs.service

[Unit] Description=Emacs text editor Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/ [Service] Type=forking ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)" Environment=SSH_AUTH_SOCK=%t/keyring/ssh Restart=on-failure [Install] WantedBy=default.target

然后执行systemctl命令来启动服务并设置开机启动,不用添加-user参数

sudo systemctl enable emacs sudo systemctl start emacs

之后可以通过emacsclient来链接守护进程,示例如下

emacsclient -nw # 打开新的emacsclient窗口 emacsclient <filename> # 打开指定文件

为方便起见可以设置bash alias,注意需要为普通用户和root用户分别设置

alias ems='emacs -nw' alias emc='emacsclient -nw' alias emw='emacsclient --create-frame' alias emacs='emacs -nw'
本文由作者按照 CC BY 4.0 进行授权