别名在后台运行的命令


25

我希望键盘快捷键可以这样工作:

> e foo.txt

扩展为

> emacs foo.txt &

它使用简单alias e=emacs,但是如何&在文件名后插入?我意识到仅使用可能无法实现alias,因此我将接受任何bash解决方案。如果需要shell脚本,请说明其工作方式。


4
您应该使用emacsclientgnuclient从命令行打开文件,而不是emacs为每个文件打开一个新文件:emacswiki.org/emacs/EmacsClient
andcoz 2011年

Answers:


38

bash中的别名不能有参数,但是可以使用函数。

e() { emacs "$@" & }

然后

e foo.txt

会做你想要的。


1
当我键入这有一个问题,e foo*在这两个目录foo.cppfoo.h,只有文件将打开一个。
钩上

4
@Hooked,然后在函数中使用"$@"代替"$1"
AProgrammer

1
@AProgrammer似乎不适用于通配符。我使用的语法是:emacs $* &一个更好的解决方案似乎是e() { command emacs $* & disown }
命名
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.