在linux下,一般会在desktop文件中使用emacs %F来右击文件打开emacs,但这种默认方式没有启动server模式,如果emacs加载的插件过多,每次都在一个新的emacs窗口中打开会很慢,经过多个小时的研究,总结出以下解决方案:
1,在.emacs配置文件中加入 (注:linux中emacs启动server模式时默认的server文件中/tmp/emacs1000/中)
;;退出的时候删掉server文件(注意:server文件夹需要用户权限)(add-hook 'kill-emacs-hook'(lambda()(if (file-exists-p "/tmp/emacs1000/server")(delete-file "/tmp/emacs1000/server"))));;如果不存在server则启动GNU Server(if (file-exists-p "/tmp/emacs1000/server") (message "server已经启动") (progn (message "启动server模式") (server-start) (server-mode 1)))
2,新建shell文件emacs-client.sh,将其放入~/bin或usr/bin中
#! /bin/bashexport HOME=/home/joy#export EMACS_SERVER_FILE=/tmp/emacs1000/serverexport SBCL_HOME=/usr/lib/sbclexport CCL_DEFAULT_DIRECTORY=$HOME/soft/cclfile="/tmp/emacs1000/server"if [ -e "$file" ];then# echo "server模式已经启动" emacsclient $*else emacs $*fi
3,修改emacs.desktop文件把Exec=emacs %F 改为Exec=emacs-client.sh %F
经过以上三步,我们在第一次打开emacs中就启用了server模式,以后右击打开文件时就会用emacsclient来打开了,方便快捷。