Tmux 및 ZSH 사용자 정의 프롬프트 : 창 이름의 버그


43

저장소에있는 경우 더 읽기 쉽고 git에 대한 정보를 추가하기 위해 oh-my-zsh 로 ZSH 프롬프트를 사용자 정의 했습니다.

예 :
bob@inf [~/docs] %
bob@inf [~/src/nicest] master %(git 저장소에서)

잘 작동하지만 tmux창 이름에 버그가 있습니다. 여전히 automatic-rename off넌센스 값 ~/docs을 표시하고 창 이름에 대한 첫 번째 예제 tmux의 경우 작동하지 않습니다 (각 명령 후 창 이름 변경) .

어떻게 해결할 수 있는지 잘 모르겠습니다. 변경 할 수 있지만 문제가 어디 있는지 이해하고 싶다면 zsh 프롬프트를 그대로 유지하고 싶습니다.

또 다른 해결책은 settile( 이 답변에서 ) 명령을 재정의하는 것일 수 있지만 올바른 방법을 모르겠습니다.

답변:


76

나는 oh-my-zsh를 들여다보고 의심되는 용의자를 발견했다 .

TERM 환경 변수의 값이 시작되면 screen( screentmux 모두에 있어야 ), 화면 터미널 제어 순서를 사용하여 창의 이름을

  • (쉘 프롬프트를 표시하기 직전에)
    현재 작업 디렉토리의“틸드 압축”경로의 가장 왼쪽 부분 ( ..뒤에 13 자 또는 15 자 미만인 경우 전체 경로)
  • (단지 명령을 시작하기 전에)
    에 대해-하려면 - - 실행 명령의 첫번째 "단어를"(안 세고 ssh, sudo그리고 몇 가지 다른).

그것은 당신을 위해 이런 식으로 작동하는 것처럼 들립니다 (당신은 당신의 창 이름 ~/docs이 그 디렉토리에있을 때 변경되었다고 말했습니다 ). 이 자동으로 이름을 변경하지 않으려면, 당신은 완전히에 DISABLE_AUTO_TITLE 쉘 매개 변수를 설정하여 비활성화 할 수 있습니다 true귀하의 .zshrc:

DISABLE_AUTO_TITLE=true

대화식 쉘에서 이것을 설정하면 현재 창 이름에 대해 빈 문자열로 끝나지 만 oh-my-zsh는 해당 쉘 인스턴스의 각 프롬프트와 명령 전에 창 업데이트를 중지합니다 ( 당신의 .zshrc) 모든 새로운 쉘 인스턴스에 영향을 미칠 수 있습니다.


4
이것은 완벽한 답변입니다. 정확하고 유익하며 간결하며 요점까지. 또한, 원래의 질문에 대답하는 것 외에 해결책을 제공합니다 ( "문제가있는 곳을 이해합니다").
dmondark

감사합니다 감사합니다 감사합니다 감사합니다 감사합니다
Jezen Thomas

.zshrc모든 사용자를위한 파일 은 어디에 있습니까?
andilabs

29

위의 대답은 해결책을 제시하지만 다른 방법은 ~ / .tmux.conf 옵션을 추가하는 것입니다.

set-option -g allow-rename off

이것은 tmux에만 영향을 미치기 때문에 더 나은 솔루션입니다.
Paul Oliver

심지어이 설정, 조인 창 휴식-창 재설정하여 창 이름 :( 다음
djsadinoff

6

.tmux.conf에서 설정하여 tmux의 창 이름이 변경된 동일한 문제를 만났습니다.

set-window-option -g automatic-rename off

크리스의 답변에 감사드립니다. 변경 후 내 tmux 창 이름이 자동으로 바뀌지 않았습니다.

set -g default-terminal "screen-256color"

에:

set -g default-terminal "xterm-256color"

0

특정 창에서만 자동 이름 바꾸기를 사용하지 않으려면 다음을 사용할 수 있습니다.

 set -t [WINDOW_NUMBER] automatic-rename off

다른 세션의 특정 창에서 자동 이름 바꾸기를 비활성화하십시오.

 set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.