2012-08-18 6 views
2

나는 tmux display-message를 안다. -p '#S'는 현재 tmux 세션 이름을 표시 할 것이지만 현재 tmux 세션 이름을 iterm2 탭 제목으로 설정하는 방법을 모르겠다.iterm2 탭 제목을 실행중인 tmux 세션 이름의 제목으로 설정하는 방법은 무엇입니까?

이것은 내가 동시에 실행중인 다양한 tmux 세션을 구별하고 올바른 탭으로 바로 이동할 수있게 도와줍니다. 당신의 ~/.zshrc

+0

나는 임시 해결 방법을 알아 냈습니다. 하여 ITerm이 항상 실행되어 현재 명령을 표시하기 때문에 에코는 "TMUX 새로운 -s 씽하는 소리"> whirrtmux.sh ./whirrtmux.sh ,이 탭 제목에 "./whirrtmux.sh"를 표시합니다 시작하는 동안. 누군가 더 좋은 방법이 있다면 ... –

답변

0

스틱이 :

set_terminal_tab_title() { 
    print -Pn "\e]1;$1:q\a" 
} 

indicate_tmux_session_in_terminal() { 
    set_terminal_tab_title "$(tmux display-message -p '#S')" 
} 

precmd_functions=($precmd_functions indicate_tmux_session_in_terminal) 

precmd_functions은 zsh을에 전에 프롬프트를 보여주는에 전화 기능의 목록을 포함하는 배열입니다. 자신의 함수를 목록에 추가하면 프롬프트가 나타날 때마다 호출되어 터미널 탭 제목을 주기적으로 업데이트하는 것이 좋습니다.

+0

은'autoload -U add-zsh-hook'을 놓치지 않았습니까? – Francisco

+0

아니요. 왜냐하면'add-zsh-hook'을 사용하지 않기 때문입니다. – mislav

+0

세션이 존재하는지 확인하는 조건이 아닙니다. 어떻게 든'source ~/.zshrc'를 시도 할 때'현재 세션을 만들 수 없습니다 '라는 메시지가 나타납니다. –

1

배쉬 버전은 제목으로 안녕하세요을 표시합니다 :

echo -ne "\033]0; Hello World \007" 

그리고 당신이 원하는 경우 제목마다 강타가 프롬프트를 인쇄 갱신 :

export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}: ${PWD/#$HOME/~}\007"' 

http://hints.macworld.com/article.php?story=20031015173932306

4

추가에 발견 이 ~/.tmux.conf에 :

set-option -g set-titles on 
set-option -g set-titles-string "#{session_name} - #{host}" 
+0

이것은 완벽하게 나를 위해 일했습니다 :) – mjsr

+0

다행 그것을 작동 :) –