emacsのシェルの.bash_profileまたは.bashrc?


11

巨大なコマンドのエイリアスを作成して保存しました.bash_profileが、驚いたことに、emacsは作成したエイリアスを取得しませんでした.bash_profile。インターネットで検索した後.bashrc、エイリアスコマンドを使用して$ HOMEにファイルを作成しました。その後、emacsがエイリアスを取得しました。terminal.appはからエイリアスを.bash_profile取得しますが、emacsはでのみエイリアスを取得するため、混乱してい.bashrcます。

私は実行してM-x shellおり、macOSを使用しています。誰かがEmacsとの関係だものを私に説明できます.bashrc.bash_profile

さらに言えば、Emacs .bash_profileに加えてEmacsを読むにはどうすればよい.bashrcですか?


1
どのようにしてEmacsに.bashrcエイリアスを取得させましたか?私のEmacs(そして明らかに他の人たち)はデフォルトでそれをしないので、私はこれを求めています。
アーチスタントン

@ArchStantonは、この質問に対する@Vera Johannaの回答を参照してください。それは私が使ったのと同じ方法です。今私はzshbashの代わりに使用しています:)
Chakravarthy Raghunandan

回答:


14

これは正しい動作です。.bash_profileいわゆるログインシェル用です。テキストモードでコンピューターにログインするときや、ターミナルエミュレーターでsshor telnetまたはorを介して別のコンピューターにログインするときのように...

.bashrcは、すでにログインして新しいxtermを起動する場合や、この場合はemacsのshellモードなど、非ログインシェル用です。

通常は.bash_profile.bashrcも読み込むコマンドが含まれています。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

したがって、.bashrc起動時に毎回読み込まれます。


したがって、エイリアスはに属し.bashrcます。別のものを作成し、同じ構成要素.bash_aliases.bashrc介して含めることも慣例です。

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

11

@pingiによって作成されたポイントに加えて、emacsシェル(M-x shell)に対してのみロードされる別の構成ファイルを使用することもできます。

マニュアルページ(emacs)インタラクティブシェルから

Emacsは、存在する場合、入力としてファイル「〜/ .emacs_SHELLNAME」の内容を新しいシェルに送信します。SHELLNAMEは、シェルのロード元のファイルの名前です。たとえば、bashを使用する場合、それに送信されるファイルは '〜/ .emacs_bash'です。このファイルが見つからない場合、Emacsは「〜/ .emacs.d / init_SHELLNAME.sh」を試します。

これは、Emacs内で別のシェルプロンプト形式を使用する場合や、ファイルをemacsclientに渡すための関数を定義する場合に便利です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.