在 $PATH 中将 emacsclient 与自定义 emacs 一起使用

在 $PATH 中将 emacsclient 与自定义 emacs 一起使用

我想使用emacscommand 作为 的替代品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内部调用emacsfrom $PATH,因此调用它会进入无限递归。我应该做什么,以便我可以使用emacs具有相同行为的自定义可执行文件?

答案1

不是直接的答案,而是如何创建一个 shell 别名而不是编写自定义脚本,例如:

alias emacs='emacsclient -c -a ""'

这允许您在交互式 shell 中输入 emacs,一切都应该开箱即用。

另一个想法是,您可以PATH~/bin/emacs脚本中进行修改并在运行之前排除~/bin/或导出变量emacsclient,然后检查脚本是否已设置变量并运行原始 emacs 命令。

相关内容