linux - 创建在后台启动的 emacs 别名?

标签 linux bash unix emacs emacs23

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

alias ec="/usr/bin/emacsclient.emacs-snapshot -n -c -a /usr/bin/emacs-snapshot"

我可能在终端输入

$ ec newfile

如果 emacs 守护进程还没有运行,我可以创建一个别名来使上面的行相当于

$ emacs newfile &

代替

$ emacs newfile

(我还应该提到我正在使用 Linux Ubuntu 并且 emacs-snapshot 被分配给别名“emacs”)。

非常感谢!

最佳答案

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

#!/bin/sh
case $# in
  0) /usr/bin/emacs-snapshot &
  *) /usr/bin/emacs-snapshot "$@" &
esac

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

如果你想要花哨的,你可以使用/bin/bashdisown esac 之后的过程(使用 $! 获取 pid)。

关于linux - 创建在后台启动的 emacs 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2277104/

相关文章:

android - 列出两个内核之间的区别

linux - 从所有子目录中的所有 mp3 文件中删除前 3 个字符和最后 1 个字符

linux - 我怎样才能得到实时值来特别在 BASH 中制作我自己的脚本,如附件所示

linux - 无法在 Debian Squeeze 中检查 cups 打印机状态

mysql - 查询花费很长时间在错误日志中发现锁定代码?

macos - 协同设计输出未打印到文件

android - 需要 root 在运行时通过应用程序执行 shell 命令 "input keyevent <#>"?

c++ - 我可以从 Qt 程序(在嵌入式 linux 上)使用什么 EXIF 库?

ruby-on-rails - Puma 错误:无法为 "10.0.2.2"端口 3000 分配请求的地址 - bind(2)(Errno::EADDRNOTAVAIL)

linux - 带有来自调制解调器的 PCM 接口(interface)的 Alsa