あなたの質問の最初の部分はでできると思いますdirtrack-mode
。最初に、現在の作業ディレクトリを含めるようにシェルプロンプトを設定します。次に、抽出方法をdirtrack-list
指示する正規表現を設定しますdirtrack-mode
。例:PS1
Bashでこれを設定しました:
export PS1="[\h:\w] $ "
そして、Emacsでは設定dirtrack-list
してオンにしdirtrack-mode
ます:
(set-variable 'dirtrack-list '("^.*[^ ]+:\\(.*\\)]" 1 nil))
(dirtrack-mode 1)
(この素晴らしいブログ投稿から引用。)
その後、私は自由にディレクトリを変更することができ、default-directory
行くにつれて変更します。これは、シェルで、同じ方法でプロンプトを設定したリモートマシンにSSHで接続した場合にも機能します。cd /etc/apache2
リモートマシンでは、に変更さdefault-directory
れ/etc/apache2
ます。注意は、しかし、これがあると、ローカル -リモートマシンの場合には、default-directory
まだに設定されます/etc/apache2
上のローカルマシン。
質問の2番目の部分を理解default-directory
しているremote-machine:/etc/apache2
場合は、別のマシンにSSHで接続するときなどに設定する必要があります。ssh-elを使用する場合 、実行ssh-directory-tracking-mode
してこの作業を行うことができます。たとえば、を実行しM-x ssh
、cdを /etc/apache2
実行しC-x C-f
、実行した場合、表示されるプロンプトは次のとおりです。
Find Files or Url: /scp:aardvark@remote-machine:/etc/apache2
「Mx ssh-directory-tracking-mode」を手動で実行できますが、ssh-modeのフックとして設定する方が便利です。
(setq ssh-mode-hook 'ssh-directory-tracking-mode)
詳しくは:
dirtrack-mode
か?それはあなたが望むことをするかもしれないフックを持っています。