Next: , Previous: , Up: Shell   [Contents][Index]


37.6 ディレクトリーの追跡

Shellモードは、Shellバッファーのデフォルトディレクトリー(File Namesを参照してください)をシェルの作業ディレクトリーと同一に保つために、サブシェルに与えられる‘cd’、‘pushd’、‘popd’のコマンドを追跡します。これは、送信する入力行を調べることにより認識されます。

これらのコマンドにたいしてエイリアスを使用する場合、変数shell-pushd-regexpshell-popd-regexpshell-cd-regexpに適切な正規表現(Regexpsを参照してください)をセットすることにより、それらも認識するようEmacsに指示できます。たとえば、shell-pushd-regexpがシェルコマンドラインの先頭にマッチした場合、その行はpushdコマンドとして記録されます。これらのコマンドは、シェルコマンドラインの先頭だけで認識されます。

Emacsが作業ディレクトリーの変更に際して混乱した場合は、M-x dirsを試してください。このコマンドはシェルに作業ディレクトリーを尋ねて、それに対応してデフォルトディレクリーを更新します。これは、一般的なコマンド構文のほとんどをサポートするシェルでは機能しますが、特殊なシェルでは機能しないかもしれません。

シェルの作業ディレクトリーを追跡する他の方法を実装した、バッファーローカルなマイナーモードの、Dirtrackモードを使うこともできます。この方法を使うには、シェルプロンプトに常に作業ディレクトリーが含まれていなければならず、プロンプトのどの部分が作業ディレクトリーを含むか認識するための正規表現を与えなければなりません。詳細は、変数dirtrack-listのドキュメントを参照してください。Dirtrackモードを使用するには、ShellバッファーでM-x dirtrack-modeとタイプするか、shell-mode-hookdirtrack-modeを追加します(Hooksを参照してください)。