이진 파일을 가져온 후 tmux 상태 표시 줄이 손상되었습니다. 재설정 방법은 무엇입니까? 내용 ( reset터미널이 엉망 이 된

cat이진 파일을 사용한 후 실수로 tmux 터미널을 망쳤습니다 . 이제 내 tmux엉망입니다. 분리 및 다시 부착해도 도움이되지 않으며 다시 그리기 (Cb r)도 도움이되지 않습니다. 실행 reset하면 나머지가 아닌 활성 창이 다시 그려집니다. ssty sane내부 또는 외부에서 실행 tmux해도 도움이되지 않습니다.

tmux 엉망

각 창 내에서 입력 한 내용 ( reset터미널이 엉망 이 된 직후 의 초기 호출)에서 정상적인 피드백을 받았지만 상태 표시 줄을 수정할 수없는 것 같습니다.

에서 gnome-terminal, 상태 표시 줄에 모든 업데이트 (위 스크린 샷 참조) 성장하는 상태 표시 줄에 연결됩니다. 예를 들어, 새 응용 프로그램을 실행하거나 창을 전환하거나 창 크기를 조정할 때 이런 일이 발생합니다. 다시 그리기를 실행하면 ( , gnome-terminal 메뉴를 C-b r실행 reset하거나 통해) 상태 표시 줄이 한 줄로 줄어들지 만 여전히 손상됩니다.

에서 xterm, 상태 표시 줄 한 줄 내에 남아 않지만, 사진으로는 손상된 남아있다.

tmux 1.5를 사용하고 있습니다.

  • tmux터미널을 어떻게 수정 합니까?

2008 년 이 버그 보고서 는 같은 문제를 설명하는 것으로 보이지만 수정 된 것으로 표시되었습니다. 어떤 버전으로 수정되었는지는 모르지만 tmux 1.5는 2008의 수정 사항을 포함해야합니다.



답변

창 이름 바꾸기 4

  • 창 4로 전환 : Control+b 4
  • 이름 바꾸기 창 : Control+ b , Control+ umyNewname

(중간에 쉼표가 있음)

또는 : Control+b :rename-window myNewname


답변

엉망을 정리하려면 두 가지 명령 시퀀스가 ​​필요합니다.

먼저 깨진 창에서 이것을 실행하십시오 (이 상태에서도 작동합니다 ssh).

stty sane; printf '\033k%s\033\\\033]2;%s\007' "`basename "$SHELL"`" "`uname -n`"; tput reset; tmux refresh

그런 다음 실행되는 컴퓨터에서 이것을 실행하십시오 tmux(내부 및 외부에서 작동 tmux).

다음 명령은 모든 tmux인스턴스에 영향을 미치며 현재 인스턴스보다 더 많은 왼쪽 상태를 변경할 수 있습니다. 해당 기능이 필요하지 않은 경우 비워 두십시오.

tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done

자세히 설명

이것은 다른 답변과 의견에서 발견 된 모든 비트를 해결하기 위해 조립되었습니다. 현재 두 번째 명령에는 약간의 비트 만 남아 있습니다. 아래의 “누락 비트”를 참조하십시오.

이것이 어떻게 작동하는지 이해하려면 먼저의 상태 표시 줄 tmux과를 종료하십시오 tty. 그런 다음 항상 사용할 수있는 방법 (command와 달리 reset)을 사용하여 다시 수정합니다 .

tmux터미널을 UTF-8사용할 수 없게 만드는 방법

stty -echo; printf '\016\033k%2000s\\\033\033]2;\355\007' $'\302\217'

경고 : 위 명령을 실행 한 후, 쉘은 장님과 귀머거리처럼 보이며 알려지지 않은 외계 언어로만 헛소리를하는 것 같습니다. 수리 방법은 아래를 참조하십시오.

설명 :

  • stty -echo 터미널 유형 응답을 종료합니다

  • printf '\016'를 수행 SO하므로 대체 문자 세트에 있습니다.

  • printf '\033]2;%s\007' 'right status text'$'\355프리젠 테이션 버그를 노출시키는 올바른 상태를 설정합니다.

  • printf '\033k%2000s\033\\' $'\302\217' 창 제목 이름을 설정합니다

이것은 일부 대화식 명령이 충돌하여 쉘로 다시 떨어진 후 터미널에서 볼 수있는 조합 일 수 있습니다. ( IMHO를 /bin/cat유발할 수는 없지만 일반적으로 stty -echo대화식 명령 vim이이를 설정합니다.)

이제이 엉망진창을 청소하십시오

stty sane; printf '\033k%s\033\\\033]2;%s\007' "$(basename "$SHELL")" "$(uname -n)"; tput reset; tmux refresh

참고 : 복사하여 붙여 넣기를 사용하는 경우 ( Shift붙여 넣기 동안 누르고 있어야 할 수도 있음 ) 위의 명령을 사용하여를 엉망으로 만든 경우 붙여 넣기를 볼 수 없습니다 tty. 따라서 붙여 넣은 후 Enter 키를 맹목적으로 누르십시오.

설명 :

  • stty sane “sane”터미널 매개 변수를 설정하므로 입력하는 동안 에코가 다시 나타납니다.

  • printf '\033k%s\033\\' "$(basename "$SHELL")"창 제목을 다시 정상으로 설정합니다. tmux rename-window "$(basename "$SHELL")"대신 사용할 수 있지만 이스케이프 시퀀스가 ​​항상 작동 tmux rename-window하는 tmux위치 로 제한됩니다 .

  • printf '\033]2;%s\007' "$(uname -n)"상태 오른쪽이 기본값으로 표시되도록 재설정합니다. ( 손상된 파일 tmux set status-right "something"만 출력 pane title하므로 status-right프레젠테이션 버그를 노출 시키기 때문에를 사용하지 않아야합니다 . 또한 tmux창 제목을 직접 설정 하는 명령을 찾지 못했습니다 .)

  • tput reset 이 문제가 발생한 경우를 대비하여 터미널을 재설정합니다.

  • tmux refresh 화면을 새로 고침하여 표시되었을 수있는 다른 잔해를 제거합니다

누락 된 비트

왼쪽 상태 영역에 현재 명령을 표시 printf '\033k%s\033\\' "$(basename "$SHELL")"하는 표준 기능 이 느슨합니다 tmux. printf '\033k%s\033\\' "something"처형 된 후에이 능력은 상실되고 좋은 방법을 찾지 못했지만, 이전과 같은 방식으로 되돌릴 수있는 방법을 찾지 못했습니다.

그러나 아래 주석에서 언급 한 것처럼 tmux다음 tmux설정을 사용하여 비슷한 기능을 대체 할 수 있습니다 .

set-window-option automatic-rename on
  • tmux현재 창에서 “Escape” :(여기서 “Escape”는 tmux명령 키)를 사용하여 도달 할 수있는 명령 줄 에서이 작업을 수행 한 다음 명령을 입력하십시오.

  • 또는 tmux set-window-option automatic-rename on현재 터미널에서 명시 적이지만, 올바른 쉘 레벨에 있지 않은 경우 (예 : sudo또는에서 작동하지 않는 경우) 실패합니다 ssh.

  • 또는 현재 tmux세션 에서 다른 창을 열고 다음 명령을 실행하십시오.

    for a in `tmux list-windows | sed 's/:.*//'; do tmux set-window-option -t "$a" automatic-rename on; done`
  • 또는 컴퓨터에서 다른 쉘을 열고 tmux다음 명령을 실행하십시오 (tmux 외부에 있음).

    tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done

추신 :이 솔루션을 구성하는 데 도움을 주신 모든 분들께 감사드립니다.


답변

당신이보고있는 특정 문제는 창 4의 이름 / 제목과 관련이 있습니다. 너무 길고 (명확하게) tmux가 더 짧은 것으로 측정하는 이상한 문자가 포함 된 조합 (따라서 상태 표시 줄을 올바르게 제한하지 못합니다) 화면 너비로) 재설정 방법을 잘 모르겠습니다 (포 그라운드 프로세스의 이름을 추적하는 경우). 창을 닫아야합니다.


답변

단순히 이것을하십시오
$ reset && tmux rename-window <new_window_name>


답변

tmux set-option -g status off && tmux set-option -g status on

창 이름 이외의 것이 손상되어서 그것이 무엇인지 알아낼 수 없었을 때 나를 위해 이것을 고쳤습니다.


답변

tmux문제의 일부만 구성 할 수 있습니다. stty sane명령 행에서 호출해야 할 수도 있습니다 . 그러면 커널 내부 TTY 드라이버가 일반적으로 진행할 수있는 일부 기본값으로 재설정됩니다. TTY 드라이버가 충분히 엉망인 경우 stty sane“블라인드” 를 입력해야합니다 . 즉, 화면에 피드백이없는 것입니다.


답변

구성 파일을 다시로드 하시겠습니까?

Ctrlb그런 다음 : :source-file ~/.tmux.conf