2013-04-10 19 views
5

我在ubuntu上安裝了emacs(使用sudo apt-get install emacs)。我havine,當我試圖從Emacs運行中的shell命令(例如M-! ls)輸出由前面這個問題:如何在ubuntu上運行emacs中的shell命令,同時避免bash作業控制錯誤?

bash: cannot set terminal process group (-1): Invalid argument 
bash: no job control in this shell 

在我.emacs我可以選擇(setq shell-command-switch "-ic")。這是我可以推測使用我的別名以及命令。這並沒有給我工作上的問題,它讓我使用我的別名。我怎樣才能使用我的別名,但避免這個問題?

+0

你寫道你使用'M-x ls'來執行shell命令,但是AFAIK不是標準命令。 Shell命令可以通過例如'M-!'或'M-x shell'。那些爲你工作? – 2013-04-10 07:30:00

+0

可能的重複http://stackoverflow.com/questions/11821378/what-does-bashno-job-control-in-this-shell-mean – devnull 2013-04-10 08:11:07

+0

@ N.N.sorry這是一個錯字..我的意思是常規M-!那些不起作用的東西。 – 2013-04-10 13:32:08

回答

0

我想通過設置你的shell命令開關,你正在執行你的.profile或系統配置文件中的代碼路徑,它依賴於shell中的作業控制。

我會定義你在正確的代碼路徑所需要的別名,以便出現在未開始-i

殼修正這個錯誤你可以嘗試換-i--rcfile .aliases或類似的東西,使alias在emacs中與登錄shell中的alias沒有什麼不同。如果你的.bashrc有工作,很重要的東西,創建一個類似.bashrc.emacs的文件在您的(setq)指令內容

source .bashrc 
source .aliases 

,並指向該文件與--rcfile .bashrc.emacs

你在哪裏定義了別名? Ubuntus .bashrc讀取.bash_aliases,這也應該發生在非交互式shell。

相關問題