あなたの質問の最初の部分はでできると思いますdirtrack-mode。最初に、現在の作業ディレクトリを含めるようにシェルプロンプトを設定します。次に、抽出方法をdirtrack-list指示する正規表現を設定しますdirtrack-mode。例:PS1Bashでこれを設定しました:
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か?それはあなたが望むことをするかもしれないフックを持っています。