2017-10-05 53 views
0

每当我打开emacs,我总是想在后台运行它。我该如何做到这一点,以便每当我输入“emacs xyz”时,shell会自动运行“emacs xyz &”?如何总是为某些命令添加&符号? (MacOS/bash)

+3

SO用于编程问题,而不是关于使用或配置Linux的问题。 SuperUser.com或unix.stackexchange.com会是这样的问题的更好的地方。 – Barmar

+0

定义一个可以做你想要的shell函数,并把它放到你的'.bashrc'中。 – Barmar

+2

我不会将其描述为“附加&符号”,而是确保您的命令在后台运行。当你讨论追加时,这会涉及到它与其他语法之间的交互方式,而这些语法并没有真正保留下来(就像别名,做字符串*前缀*,可以改变代码的解析方式一样,真正附加字符串的东西会能够修改分析时间行为,而这并不是你正在寻找的元素)。 –

回答

8

下壳功能(可以放在.bashrc )做你在问什么:

emacs() { command emacs "[email protected]" & } 

command确保真实(前ternal)emacs命令被调用,而不是递归地调用它自己的函数。 "[email protected]"展开为参数列表,确保它们通过。

1

你可以做一个名为一个简单的bash脚本,任何你喜欢的,让我们说emax在这个例子:

#!/usr/bin/env bash 
emacs "[email protected]" & 

,然后调用作为emax xyz

+0

这清理工作我。然后我将“emacs”设置为“emax”。谢谢! –

+0

你也可以在脚本之后调用'/ usr/bin/emacs'或者有一行像'PATH =/bin:/ usr/bin'这样的脚本 - 此时它可以被命名为'emacs'本身,所以只要它安装在PATH中真正的二进制文件之前的位置即可。别名不太理想 - 它不能像导出的函数或脚本那样在很多地方工作。 (当然,如果您命名shim'emacs';'find -exec'不会识别别名,那么John的答案甚至可以用'find ... -exec emax {} +'或'-exec emacs'工作完全)。 –