1

Emacs では、現在のバッファーが通常のファイル (たとえば) を "訪問" しており、そのフル パス名がであり、そのファイルが( ) を/path/to/somefile実行している場合、ミニバッファーに表示されるプロンプトは次のようになります。find-fileC-x C-f

Find file: /path/to/▮

...上記の ▮ で示されているようにカーソルを配置します。IOW、デフォルトで表示される推奨パスは常に、現在のバッファーがアクセスしているファイルを含むディレクトリです。

ただし、現在のバッファが Emacsシェル プロセスであり、実行find-fileされた場合、AFAICT では、現在の値に関係なく、プロンプトに表示されるパスは、シェル プロセスが開始されたときの値に固定されたままになります。$PWD $PWD

Find file: /pwd/at/startup/▮

この振る舞いはあまり役に立ちません$PWD。のプロンプトに表示されるディレクトリがfind-file代わりにシェル プロセスの現在の $PWD.

find-file現在のバッファがシェル プロセスである場合は常に、このように動作するように変更する簡単な方法はありますか?

4

2 に答える 2

1

「シェルディレクトリ追跡」が必要です。例: チェックdirtrack-modeまたはshell-dirtrack-mode.

shell-dirtrack-mode「cd」コマンドを解析しようとします(event_jr:私の経験では一貫して機能しません)。 dirtrack-mode非常にうまく機能するプロンプト正規表現を使用します。

于 2013-03-16T21:36:38.320 に答える
0

これを管理する方法はいくつかあります。Stefanが指摘しているように、それを管理する組み込みパッケージがいくつかあります。

私の好みの方法は、(Emacs の場合) プロンプトを変更して を$PWD埋め込んでから、Emacs がそれを取り除いて使用することです。これには、常に最新の状態に保たれるという利点があります。同期がずれることがあることがわかりましたdirtrack-mode

Emacs Wiki での同様の実装の変更である私のソリューションhereを確認してください。

于 2013-03-17T04:06:15.533 に答える