귀하의 질문의 첫 부분은로 할 수 있다고 생각합니다 dirtrack-mode
. 먼저 현재 작업 디렉토리를 포함하도록 쉘 프롬프트를 설정합니다. 다음으로, 추출 방법을 dirtrack-list
알려주는 정규식으로 설정 dirtrack-mode
하십시오. 예 : PS1
Bash에서 이것을 다음 과 같이 설정 했습니다.
export PS1="[\h:\w] $ "
그리고 이맥스에서 나는 설정 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
질문의 두 번째 부분을 이해하면 다른 컴퓨터에 SSH를 연결할 때 default-directory
와 같이 설정하려고 remote-machine:/etc/apache2
합니다. 사용하는 경우 SSH - 엘을 , 당신은 실행 ssh-directory-tracking-mode
이 작업을 할 수 있습니다. 예를 들어, M-x ssh
cd to /etc/apache2
, run을 실행 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
? 원하는 것을 할 수있는 고리가 있습니다.