创建以后台开头的emacs别名?

hat*_*rix 5 unix linux emacs bash emacs23

如果emacs守护程序已经运行,我在bash中有一个运行emacsclient的别名,否则启动emacs.但是,如果启动了一个新的emacs实例,我可以让它在后台运行,这样我仍然可以使用该终端(或关闭它)吗?在我的bash配置文件中,我有

alias ec="/usr/bin/emacsclient.emacs-snapshot -n -c -a /usr/bin/emacs-snapshot"
Run Code Online (Sandbox Code Playgroud)

我可能会在终端并打字

$ ec newfile
Run Code Online (Sandbox Code Playgroud)

如果emacs守护程序尚未运行,是否存在我可以创建的别名以使上面的行相当于

$ emacs newfile &
Run Code Online (Sandbox Code Playgroud)

代替

$ emacs newfile
Run Code Online (Sandbox Code Playgroud)

(我还应该提到我使用Linux Ubuntu并将emacs-snapshot分配给别名'emacs').

非常感谢!

Nor*_*sey 5

而不是/usr/bin/emacs-snapshot直接调用,编写一个/usr/bin/emacs-snapshot在后台调用的脚本,然后返回:

#!/bin/sh
case $# in
  0) /usr/bin/emacs-snapshot &
  *) /usr/bin/emacs-snapshot "$@" &
esac
Run Code Online (Sandbox Code Playgroud)

然后你以普通的方式调用脚本; 它将启动后台emacs进程并立即返回.

如果你想得到想象,你可以使用/bin/bash和之后disown的过程esac(获得pid $!).