2011-11-07 19 views
1

Eshellの設定に関する2つの小さな質問。私は、カスタマイズオプションとソースコードまで見ていましたが、役に立たなかったのです。たぶん、私はもっとよく見ていたはずです。Eshell - デフォルトディレクトリとパスはどこに定義されていますか?

  1. 私はEmacsとオープンESHELL起動すると、ディレクトリではなく、私のホームディレクトリの '〜/ .emacs.d/ELPA' は「〜/」、私が期待するもの。私はこの構成がどこから来ているのか分からず、それを変更する方法を見つけませんでした。

  2. 私の.bashrcで$ PATHが変更され、Emacsの変数 'exec-path'が必要に応じてカスタマイズされました。しかし、最初の変更はEshellには反映されていませんが、bashはそれについてはわかりません。 Eshellはこの情報をどうやって得るのですか?この変数の変更に関するbashの知識とはどう違うのですか?任意のヒントについて

おかげ

トルステン

PS

私は同様の質問は[こちら](http://stackoverflow.com/questions/3621755/what-setup-を見つけましたfile-does-eshell-elisp-shell-read-when-it-starts-how-eshell-sets-i)を実行します。ポイント2への答えは、eshellが.bashrcを読み込まないということです。したがって、$ PATHは、起動プロセスの前に読み込まれたファイルに設定する必要があります。私のUbuntuシステム上で

/etc/environment 

は、$ PATHを設定するために起動時にEmacsによって読み込まれるファイルのようです。

答えて

2

ESHELLは "〜/ .emacs.d/ELPA" である(Emacsが始まった直後に)あなたの現在の作業ディレクトリで起動しているようです。 "M-x cd"で手動で変更することはできますが、これは必要ではありません。ファイルを編集してバッファからeshellを起動すると、eshellはファイルと同じディレクトリで起動します。

しかし、本当にあなたのホームディレクトリ内のすべてのeshellセッションを開始したい場合は、eshellが起動する前にフックコール "cd"を行うことができます。

+0

ありがとう、それは質問の最初の部分に答えます。私は2番目の部分は関連していると思います - 私の.bashrcが評価される前にEmacsが早く起動して$ PATHの値を取得するようです。しかし、たとえ私がeshellをkillして新しいシェルを起動しても、eshellの$ PATHは.bashrcの変更を反映しませんが、新しいbashシェルはその変更を知っています。 – Thorsten

関連する問題