2017-10-05 55 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'工作完全)。 –