我想使用emacs
command 作为 的替代品emacsclient -c -a ""
,根据 man 连接到现有的 emacs 守护进程,或者创建一个新的守护进程并以其他方式连接到它。所以我创建了一个 shell 脚本emacs
,它调用 my 中的上述命令~/bin
,该命令本身包含在$PATH
.但是当我运行时emacs
,它会多次重复以下内容:
emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".
然后还有无数:
Error: Could not start the Emacs daemon
其内容~/bin/emacs
为:
#!/bin/bash
emacsclient -c -a ""
根据Emacs 开发人员,emacsclient
内部调用emacs
from $PATH
,因此调用它会进入无限递归。我应该做什么,以便我可以使用emacs
具有相同行为的自定义可执行文件?
答案1
不是直接的答案,而是如何创建一个 shell 别名而不是编写自定义脚本,例如:
alias emacs='emacsclient -c -a ""'
这允许您在交互式 shell 中输入 emacs,一切都应该开箱即用。
另一个想法是,您可以PATH
在~/bin/emacs
脚本中进行修改并在运行之前排除~/bin/
或导出变量emacsclient
,然后检查脚本是否已设置变量并运行原始 emacs 命令。