6

eshell または ansi-term と bash を使用する場合、emacs は現在のディレクトリに応じて default-directory 変数を変更します。

そのため、移動してから/home/user/code/projectido-find-file を使用してファイルを開くと、CWD で ido が開始されます。ksh (通常のシェル) または zsh (テスト用に試行) を使用すると、機能しません。設定はありますか、それとも bash でサポートされているだけですか?

ありがとう

4

2 に答える 2

10

これを .zshrc に入れてください:

chpwd() { print -P "\033AnSiTc %d" }

print -P "\033AnSiTu %n"
print -P "\033AnSiTc %d"

chpwd() 関数は、pwd が変更されるたびに実行されます。%d で終わる行は、現在のディレクトリを追跡できる行です。zsh が最初に初期化されたときに実行されるように、関数の外で繰り返します。しかし、Emacs では、最初に現在のユーザーが誰であるか (%n で終わる行) を伝える必要があります。

これは、Ubuntu を使用している場合、/usr/share/emacs//lisp 内にある term.el で実際に説明されています。

お役に立てれば。

于 2010-11-04T22:27:01.260 に答える
0

この問題にはいくつかの解決策があります。私はたまたま、Emacs が認識し、必要な動作を取得するために使用する現在のパスを含むようにプロンプ​​トを変更する私の実装を好みます。さらに、私のソリューションは、パスが醜いため、パスを含むプロンプトの部分を非表示にします。

私の解決策は、ブログ投稿Emacs Tip #25 Shell Dirtrack By Prompt にあります。

ただし、Emacs Wiki または他の場所で見つけることができる他の解決策がいくつかあります。

于 2010-08-18T05:02:45.617 に答える