2013-05-18 1 views
11

내가 TMUX에 새로운 오전 그리고 난 상태 표시 줄의 왼쪽을 내 tmux.conf 파일을 편집하려고 반영 :Tmux : 상태 표시 줄에 창의 현재 작업 디렉토리를 표시하도록 tmux를 구성하는 방법은 무엇입니까?

[SessionName] [CurrentPane] [CurrentWorkingDirectory]

은 내가 SessionNameCurrentPane를 표시 할 수입니다. 그러나 CurrentWorkingDirectory을 표시 할 수 없습니다.

  1. #(tmux select-pane -t :.#P; pwd) :

    내가 #(shell command) 몇 가지 옵션을 시도했습니다 을하지만이 않는 다른 $의 PWD 변수를 출력하지는 현재 창에서 bash는 세션의 현재 디렉토리를 반영합니다. 첫째

  2. #(tmux select-pane -t :.#P; tmux send-keys pwd Enter)

    , 내가 터미널에서 해요 경우 CurrentWorkingDirectory를 인쇄했다 있지만. 그것은 터미널에서 이것을 인쇄하고 상태의 막대기을 원하는대로 바꿉니다. 둘째로, 나는초마다 "pwd Enter"를 입력했는데, 내가 터미널에 있었는지 여부에 상관없이 번갈아서 귀찮은 것이었다.

나는 이러한 옵션을 시도했지만 아무 소용이 없다해도 원하는 것을 할 수 있습니까? 그리고 어떻게?

답변

15

맨 페이지에없는 것 같지만 개발 버전에서 언급 한 변수가 있습니다. 나를 위해, 그것은 tmux의 1.8 릴리스에서 작동합니다.

set -g status-left "#{pane_current_path}" 

창 상태에 넣을 때도 작동한다는 점에 유의하십시오. 각 창 상태에는 각각의 작업 디렉토리가 표시됩니다.
/etc/tmux.conf에서 : 여기

setw -g window-status-current-format "#T(#I:#W#F)" 
setw -g window-status-format "#T(#I:#W#F)" 

#T 오픈 수세 12.3은 "공식 버전을"그러나 나는 해결책을 찾기 위해 관리 -

setw -g window-status-format "#{pane_current_path}". 
+0

이것은 새로운 창이 만들어 졌을 때만 창 이름을 바꿉니다. –

4

bash에서이 작업을 수행하는 방법을 잘 모르겠지만 zsh에서는 모든 명령 앞에 실행되는 훅이 있습니다. 당신의 .zshrc 년 :

precmd() { 
    tmux set -qg status-left "#S #P $(pwd)" 
} 

이 당신이 명령을 실행하는 tmux 명령마다 실행됩니다. 희망이 도움이됩니다. bash에는 precmd이 없으므로이 작업을 수행하는 방법을 잘 모르겠습니다.

+0

도움 주셔서 감사합니다.Linux에 초보자이며 bash에서 배우기 시작했기 때문에, 꼭해야하지 않는 한 zsh로 전환하고 싶지 않습니다. 그러므로 내가 bash에 대한 해결책을 선호하는 이유. – rajames

+0

그러나 [Glyph Lefkowitz] (http://glyf.livejournal.com/63106.html)의 트릭을 사용하여 bash로 precmd를 실행하는 방법을 찾았습니다. 해결책은 [여기] (http://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command)에서 발견되었습니다. 감사! – rajames

3

불행하게도, 제안 된 솔루션은 버전 1.7이 작동하지 않습니다 - 이스케이프 시퀀스로 설정할 수있는 현재 창 제목을 표시합니다. 각 쉘 명령에서이 일을 위해, .bashrc 어딘가에 을 넣어 : 이것은 오픈 수세 12.3에 나를 위해 작동

[[ -n "$TMUX" ]] && PROMPT_COMMAND='echo -n -e "\e]2;${PWD/${HOME}/~}\e\\"' 

은, bash는 4.2.53을 1.7 TMUX.

+0

작동하지 않는 것처럼 보입니다 :'-bash : [[-n : 명령을 찾을 수 없습니다.] – xApple

+0

물론입니다! 공백은 [[와]] 뒤에 필요합니다. 테스트 후 터미널 창에서 한 줄을 복사하고 표시 할 때이 공백이 사라 졌다는 것을 알지 못했습니다. – avb1003