2009-06-05 32 views
13

我的bash初始化腳本(〜/ .profile)包含重要的初始化,但每當我使用shell命令或在emacs中編譯時,該init文件都不會被讀取,並且沒有這些初始化,我在emacs中的bash命令將會失敗:我強迫emacs執行我的初始化文件,用於shell命令的shell?如何讓emacs shell自動執行init文件?

說明:我不是在談論Mx shell,它將.init文件符號鏈接到.emacs_bash時讀取我的init文件。

回答

22

移動你的初始化程序到您的~/.bashrc文件

然後添加一行

source ~/.bashrc 

進入您的~/.bash_profile文件。請參閱bash man page以獲取有關啓動文件何時加載的詳細說明。關鍵是一個交互式非交互殼,以及一個登錄非登錄殼之間的差值之間的差。

一般而言,.bash_profile被登錄到使用殼系統時,同時.bashrc運行開始一個新的殼(OS X的終端應用程序是一個例外,因爲它運行.bash_profile爲每個新終端的實例)時運行。欲瞭解更多信息文章形式,look here.

+1

我將我的.profile符號鏈接到.bashrc和.bash_profile。似乎還沒有工作。 emacs是否啓動交互式或非交互式shell?我也嘗試添加 - 登錄到顯式bash參數,並且仍然沒有運氣。 – polyglot 2009-06-05 21:30:18

+1

啊,現在我可以再次愛上我的Emacs外殼!謝謝! :D – 2012-02-19 17:15:19

2

挖掘elisp源;看起來像emacs中的shell命令只是在我的情況下執行bash -c「命令」。解決方案是在已經執行.profile的shell中啓動emacs(emacs &)(而不是從我的Windows管理器的GUI菜單啓動emacs)。

5

我正在使用Mac,shell-command沒有執行.bashrc,也沒有.bash_profile,我使用了一個解決方案來修復我的PATH問題。

把這個在你的.emacs: (SETENV 「PATH」(殼命令到字符串 「源的〜/ .bashrc;回聲-n $ PATH」))

更多細節,請參見:How to make emacs to run my ~/.bash_profile

相關問題