2009-09-08 14 views
10

〜/ .bashrcで定義されているいくつかの別名と関数があります。私はM-x shell-commandを実行すると.bashrcのコマンドはEmacsでは利用できません

私はemacs -nw

を使用して、ターミナルウィンドウからのemacsを起動し、〜/ .bashrcのからエイリアスや機能は使用できませんが、「コマンドが見つかりません」を与えます。

かなりグーグルではありますが、私が正しく理解すれば、〜/ .bashrcは〜/ .profileや〜/ .bash_profileではなく、これが動作するはずの場所です)。

私には何が欠けていますか?

答えて

8

エイリアスは唯一の対話型シェルで利用可能です - bashのmanページからのスナップショット:

エイリアスが expand_aliasesオプションがshopt を(使用して に設定されているシェルない限り シェルは、対話式でない場合に拡張されていませんSHELL BUILTIN COMMANDSのshoptの説明を参照してください)。

2

あなたは対話型シェルからのEmacsを起動した場合(などこれ.bashrcの中には、実行されている)、そして、あなたの.bashrcからのコマンドがshell-commandshellの両方で利用可能であるべき、少なくとも、それはそれは私のためにどのように動作するかです。

しかし、他の答えによれば、emacsで.bashrc環境を取得する実際の方法はありません。 .emacs_bashファイルに関するいくつかのドキュメントがありますが、それは私のためにはうまくいきませんでした。


ここでご迷惑をおかけします。 .bashrcのパスを変更してコマンドの代わりに関数とエイリアスを探している場合は、非対話性が問題になります。私はbashをインタラクティブにするためにシェルコマンド(デフォルトではexplicit-bash-argsを見てください)へのデフォルトの引数を変更することができますが、意図しない結果が生じる可能性があります。

関連する問題