iTerm2에서 -CC를 사용하여 기존 tmux 세션에 자동으로 연결하려면 어떻게해야합니까?


4

iTerm2를 사용 tmux -CC하고 기존 iTerm UI를 tmux 창 및 창과 연결하는 데 도움 이되는 것으로 나타났습니다 .

iTerm을 시작할 때 ( Send text at start:프로필 설정으로) 기존 세션에 자동으로 연결 하거나 존재하지 않는 경우 새 세션을 만드는 방법을 알아 내려고 합니다.

여러 사람들이 다음과 같은 것을 제안하는 것을 보았습니다.

tmux attach -t base || tmux new -s base

그러나 -CC 플래그를 추가하면 이상한 동작이 발생하거나 작동하지 않습니다. 처음 시작할 때 다음 오류가 발생합니다.

A tmux protocol error occurred.
Reason: %begin with empty command queue

쉘 (클라이언트?)에는 다음과 같은 출력이 있습니다.

> tmux -CC attach -t base || tmux -CC new -s base                     
** tmux mode started **

Command Menu
----------------------------
esc    Detach cleanly.
  X    Force-quit tmux mode.
  L    Toggle logging.
  C    Run tmux command.
Detached
** tmux mode started **

Command Menu
----------------------------
esc    Detach cleanly.
  X    Force-quit tmux mode.
  L    Toggle logging.
  C    Run tmux command.
Detached
%output %0 \015\015\033M\033[0m\033[23m\033[24m\033[J\033[36m@\033[32mgloesch\033[m\017 \033[1m\033[34m~\033[m\017 \015\012> \033[K\033[68C\033[31m<system>\033[m\017 \033[m\017\033[77D
%begin 1444229906 14 1
%end 1444229906 14 1
%exit

이 과정에서 두 번째 창이 생성되지만 모든 것이 끝나면 닫힙니다.

답변:


2

을 사용하는 대신 Send text at start:ssh에 인수로 명령을 전달하는 것이 좋습니다. 제 경우에는 다음과 같이 작동합니다 (최신 iTerm2 베타 버전에서는 작동하지 않는 경우 업그레이드하고 싶을 수 있습니다).

ssh -t <user>@<remote> "tmux -CC new -A -s foo"

당신은 함수로이 포장 및 쉘 초기화 파일에 그것을 넣을 수 있습니다 ( .zshrc, .bashrc쉽게 호출을 위해 등.)

$ cat ~/.zshrc
function cch {
  ssh -t $@ "tmux -CC new -A -s foo"
}
$ cch <user>@<remote>

명령 으로의 -A전환 new-sessioniTerm의 GitLab에 대한이 스레드에 대한 자세한 내용은 tmux 매뉴얼 페이지를 참조하십시오 . George Nachman은 -AiTerm과 잘 통합 된이 우아한 솔루션을 제안했습니다 .

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