在terminal中用daemon方式启动emacs

Clloz · · 91次浏览 ·

前言

由于个人喜好,虽然 emacs 不像 vim 那样在 Linux 中默认安装,不过我在 mac 上还是习惯于用 emacs 作为默认的 terminal 编辑工具,不过 emacs 有个坏毛病就是配置挺繁琐,没有 vim 那么轻量,并且当配置越来越多,启动会比较慢,用 emacs 命令的话每次都得等 emacs 加载会很头疼,下面就分享以下让 emacs 在后台驻留的方式。

如何快速启动 emacs

emacs 提供了 --daemon 的后台驻留启动参数,不过我们可以配置以下,让启动更便捷,首先创建一个 .emacs_client.sh 文件,在其中加入如下内容:

#!/bin/bash
#filename: emacs_client.sh

if [ `ps axu | grep "Emacs.*app" | grep daemon | wc -l` -eq 1 ]
# if [ `ps axu | grep "Emacs"` -eq 1 ]
then
    echo "Ready."
else
    echo "Starting server."
    /usr/local/bin/emacs --daemon
fi

emacsclient -c "$@"

这段的主要功能就是检查进程中是否有 emacs,如果没有则用 --daemon 方式启动,如果有就直接打开。然后我们在环境变量给我们的命令起个别名,并且加入一个关闭进程的方法,打开 .bash_profile,在其中加入如下内容:

alias emacs="~/.emacs_client.sh -t"
alias em="emacs"
# alias emd="emacs -e '(kill-emacs)'"
alias emd="kill-emacs"

# add kill emacs function
function kill-emacs(){
    emacsclient -e "(kill-emacs)"
    emacs_pid=$( ps x | grep "Emacs.*app" | grep daemon | awk '{print $1}' )
    if [[ -n "${emacs_pid}" ]];then
        kill -9 "${emacs_pid}"
    fi
}

这一段的主要功能就是用 em 代替 emacs 指令,然后 emd 指令表示关掉 emacs 进程。

现在如果你要启动 emacs 只要键入 em 就可以了,第一次会加载 emacs 配置,然后进程会一直在后台驻留,当你下次再要进入的时候再键入 em 命令,emacs 就会秒开。如果你想关掉进程,就直接输入 emd,不过下次再启动就有需要加载配置了。


Clloz

人生をやり直す

发表评论

电子邮件地址不会被公开。 必填项已用*标注

我不是机器人*

EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00