在我的 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
。