2012-06-13 2 views
4

점차 Bash에서 ZSH로 전환하고 기능을 복제하여 학습하려고합니다. 비록이 하나를 찾을 수 없습니다.터미널 프레임에 현재 디렉터리를 표시하려면 어떻게해야합니까?

Bash does this by default I think

내가 무엇을 넣어해야하고, 어디 넣어해야합니까? 이것은 가능한가? 감사.

+0

아마도 'bash'아래의 쉘 프롬프트에 의해 설정 될 것입니다 -'bash'에서'echo $ PS1'의 출력은 무엇입니까? – sarnold

+0

AFAIK, 터미널 * 단지 * 않습니다. My $ PS1은 무한대 기호 ∞로 설정됩니다. –

+0

''zsh'은''chpwd_functions' (http://stackoverflow.com/a/9865595/377270) 배열을 제공합니다.이 배열은'PS1' 또는'precmd' 기반 이스케이프를 사용하는 것보다 훨씬 낫습니다. 나는'PS1'이 윈도우 타이틀을 설정하기위한'Terminal.app' 이스케이프 시퀀스를 갖길 바랬습니다. 아마도 그것은'PROMPT_COMMAND'에 있을까요? – sarnold

답변

10

이 시도 :

settitle() { printf "\e]0;[email protected]\a" } 
dir_in_title() { settitle $PWD } 
chpwd_functions=(dir_in_title) 

지금, 당신의 cd 명령은 제목을 업데이트 할 Terminal.app를 묻는 이스케이프 시퀀스를 인쇄 할 dir_in_title 기능을 실행합니다. (이상하게도 urxvt에서도 작동하는 이스케이프 시퀀스를 사용하면 예상 한 것보다 더 표준화되어야합니다.)

효과가 마음에 들면이 라인을 ~/.zshrc에 추가해야합니다 미래의 터미널에서 일하기.

올바른 탈출 시퀀스 from Chris Page on superuser과 기능 스타일 from my answer to similar but different question을 사용했습니다. Chris Page gave his own answer on that question with details on OS X 10.7 that are drastically different. 업그레이드 할 때 대신 자신의 메커니즘을 사용하는 것이 좋습니다.

관련 문제