읽기 전용 tmux 단축키가 있나요?

읽기 전용 tmux 단축키가 있나요?

저는 연결이 끊기거나 충돌한 후에도 원격 작업이 안전하게 열려 있는지 확인하는 방법으로 수년 동안 Screen을 사용해 왔습니다. 사실 로컬에서 작업할 때도 당연히 화면을 사용합니다.

최근 내 요구 사항은 장점 때문에 tmux로 전환하는 단계로 발전했습니다.

tmux attach -r

읽기 전용 모드(-r)로 내 세션에 연결하면 예상치 못한 상황에 대해 걱정할 필요가 없습니다.

  • IRC에 가비지 라인 붙여넣기
  • 중요한 컴파일/배포 프로세스 중지
  • 지나가는 사람들이 다 보이는 곳에 비밀번호를 입력하세요

물론 문제는 세션을 열고 Cb + d를 눌러 분리한 다음 -r 플래그를 사용하여 다시 열어 읽기 전용이 되어야 한다는 것입니다. 그러다가 가끔 IRC 대화에 참여하고 싶거나, 작업을 중단하거나, 다른 작업을 수행하고 싶을 때 다시 연결을 끊었다가 정상적으로 다시 연결해야 합니다.

키 바인딩을 통해 모드 간을 전환하는 방법을 아는 사람이 있나요?

답변1

tmux 1.9a당신이 할 수 있는 일 에서 :switch-client -r. 이것이 1.9a의 새로운 기능인지는 확실하지 않지만 이것이 제가 실행 중인 버전이며 기존 tmux 세션을 읽기 전용 모드로 변경할 수 있습니다.

답변2

기반이 아님매뉴얼 페이지attach -r, 읽기 전용 모드를 활성화하는 옵션 만 호출합니다 .

또한,소스 코드, 다음 줄만 cmd-attach-session.c읽기 전용 플래그를 설정합니다. 나머지 코드에서는 이 플래그가 설정되어 있는지 확인하지만 해당 값을 변경하지는 않습니다. 다시 말하지만, 코드 변경을 수행(또는 요청)할 수 없다면 운이 없는 것 같습니다.

    if (cmd_check_flag(data->chflags, 'r'))
        ctx->cmdclient->flags |= CLIENT_READONLY;

답변3

에서는 (아래 ) 다음과 tmux 2.9a같이 말합니다 .man tmuxattach-session

     -r signifies the client is read-only (only keys bound to the
     detach-client or switch-client commands have any effect)

이를 바탕으로 다음과 같은 작업을 수행할 수 있습니다.만들다자체 바인딩을 제공하여 읽기 전용(및 반환)에 대한 바로가기 :switch-client -r:

# Toggle read-only with <prefix>R
bind-key R switch-client -r

이는 클라이언트가 읽기 전용인 경우에도 작동합니다.

추가 display-message명령을 추가해도 아무 효과가 없습니다. tmux키에 바인딩된 기능은 더 이상 단순한 명령이 아니기 때문에 실행이 거부됩니다 switch-client.

관련 정보