将 emacs 设置为始终在后台运行

将 emacs 设置为始终在后台运行

在我的 bash 终端中,我将 emacs 设置为在 XWindows 中运行。我希望这样不会冻结我的终端会话,因此我运行:

emacs文件名&

有没有办法给它起别名?我试过:

xemacs='emacs $1&'

没有运气。

答案1

假设您正在使用bash...您可以通过将其添加到 .bashrc 来创建 shell 函数:

emacs () {
  /usr/bin/emacs "$@" &
}

它完成与包装器相同的功能,但不需要额外的包装器。

答案2

您可以创建一个脚本来为您执行此操作:

#!/bin/sh
emacs "$@" &

答案3

总结 alias "ec=emacsclient -cnqua ''"; ec my_file


我建议在守护进程/服务器模式下运行 Emacs,它会打开一个套接字并在后台等待客户端连接。

最常见的客户端是与 Emacs 一起分发并可立即使用emacsclient

的一个重要特性emacsclient是,如果所述套接字不可用,它还可以以守护进程模式启动 Emacs。

为了满足您的要求,您需要emacsclient从一些非默认选项开始,但这可以使用 shell 别名来实现,例如,

$ alias "ec=emacsclient -cnqua ''" # the void string '' is IMPORTANT

哪里(来自emacsclient --help

-c, --create-frame      Create a new frame instead of trying to
                        use the current Emacs frame

上述操作确保 Emacs 打开一个新框架并且不使用终端

-n, --no-wait           Don't wait for the server to return

以上操作释放了你的终端

-q, --quiet             Don't display messages on success
-u, --suppress-output   Don't display return values from the server

以上尽可能地让客户保持沉默

-a EDITOR, --alternate-editor=EDITOR
                        Editor to fallback to if the server is not running
                        If EDITOR is the empty string, start Emacs in daemon
                        mode and try connecting again

以上是关键,如果 Emacs 服务器/守护进程没有运行,该选项-a ''将启动一个新的 Emacs 服务器。

您可以根据需要使用窗口管理器关闭新框架,但要关闭服务器,您必须使用 Emacs 命令M-x kill-server

相关内容