GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Tracking.html ・ emacs-doc.conao3.com

40.6 ディレクトリトラッキング

シェルモードでは、シェルバッファのデフォルトディレクトリ(ファイル名を参照)をシェルの作業ディレクトリと同じに保つため、サブシェルに与えられた ‘cd’、‘pushd’、および ‘popd’ コマンドを追跡します。シェルは、送信された入力行を解析することで、これらのコマンドを認識します。

これらのコマンドにエイリアスを使用する場合、変数 shell-pushd-regexp、shell-popd-regexp、shell-cd-regexp に適切な正規表現を設定することで、Emacs にそれらも認識させることができます(正規表現の構文を参照)。例えば、shell-pushd-regexp がシェルコマンドラインの先頭にマッチした場合、その行は pushd コマンドとして扱われます。これらのコマンドは、シェルコマンドラインの先頭でのみ認識されます。

Emacsがサブシェルの作業ディレクトリの変更を認識できなくなった場合は、M-x dirs と入力してください。このコマンドはシェルに作業ディレクトリを問い合わせ、それに応じてデフォルトディレクトリを更新します。一般的なコマンド構文をサポートするシェルでは動作しますが、特殊なシェルでは動作しない場合があります。

また、シェルの作業ディレクトリを追跡する代替手法を実装したバッファローカルなマイナーモードである Dirtrack モードも利用できます。この手法を使用するには、シェルプロンプトに常に作業ディレクトリが含まれている必要があり、さらにプロンプトのどの部分に作業ディレクトリが含まれているかを識別するための正規表現を指定する必要があります。詳細は変数 dirtrack-list のドキュメントを参照してください。Dirtrack モードを使用するには、シェルバッファに M-x dirtrack-mode と入力するか、dirtrack-mode を shell-mode-hook に追加してください(Hooks を参照)。