当在bash中执行emacs --daemon
后,emacsclient说找不到socket,这让人非常困惑:
$ ps aux | grep emacs
shiangro 1744 0.0 0.0 2432784 604 s000 S+ 1:03下午 0:00.00 grep emacs
$ /usr/local/bin/emacs --daemon
("emacs")
Starting Emacs daemon.
Restarting server
$ /usr/local/bin/emacsclient -t
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".
emacsclient: No socket or alternate editor. Please use:
--socket-name
--server-file (or environment variable EMACS_SERVER_FILE)
--alternate-editor (or environment variable ALTERNATE_EDITOR)
我在我的.emacs文件中有以下设置:
(server-start)
(setq server-socket-dir "~/.emacs.d/server")
并且它可以工作,服务器文件
~/.emacs.d/server/server
就在那里,但是emacsclient却说找不到套接字,这让我很烦恼,因此我不得不使用-s
选项告诉它套接字文件的位置。当我想让emacs在每次重启(启动)系统后作为守护进程运行时,我发现了这个棘手的问题,我使用了crontab的
◎reboot
特殊字符串。在这种情况下,cron成功地启动了emacs服务器,并且服务器文件
~/.emacs.d/server/server
也在那里,但是后来当我启动终端并尝试使用emacsclient -t
时,它失败了并抱怨找不到套接字文件!虽然我可以通过在每次执行emacsclient时使用
-s ~/.emacs.d/server/server
来绕过这个问题,或者将emacsclient别名设置为emacsclient -s ~/.emacs.d/server/server
,但是否有更好的方法来安慰我的内心呢?背景:
系统:Mac OS X 10.9.2
emacs:由homebrew安装的GNU Emacs 24.3.1