tmux 창을 어떻게 숨기나요?


59

내 tmux 창에 3 개의 창이 있습니다 :

--------------------------
|             |      2   |
|             |          |
|        1    |----------|
|             |      3   |
|             |          |
--------------------------

창 1과 2에는가 있습니다 vim. 창 3은 내가 개발중인 클리닉을 운영합니다. 때로는 창 1과 창 2를 비교하고 싶기 때문에 창 3을 숨기고 싶습니다.

--------------------------
|             |          |
|             |          |
|        1    |       2  |
|             |          |
|             |          |
--------------------------

그런 다음 창 3을 다시 가져옵니다. 거기에 몇 가지 사항을 설정하고 다시 설정해도 이동하고 싶지 않으므로 창 3을 죽이고 싶지 않습니다.

  • PREFIX + z창 2를 확대 할 수 있지만 창 1을 건드리지 않는 것과 비슷한 것이 있습니까? 또는
  • 창 3을 빠르게 숨기고 필요할 때 다시 가져올 수있는 방법이 있습니까?

답변:


71

break-panejoin-pane명령을 사용하십시오 . 자세한 man tmux내용, 옵션 및 사용법을 참조하십시오 .


창 3 숨기기 :

pane을 선택 3하고 Prefix-를 입력하십시오 :break-pane -dP.

tmux3을 백그라운드의 창 ( -d플래그)으로 보내고 창 2 ( -P플래그) 에 대한 정보를 인쇄 합니다. 기본적으로 1:2.0(의미 :)와 같은 것이 표시 session:window.pane됩니다. q작업을 계속하려면 누르십시오 . 1

1 몇 가지 연습을 -P통해 session:window.pane트리플렛을 예측할 수 있으므로 플래그 를 삭제할 수 있습니다 . session기본값은 현재 세션으로 설정되고 pane기본값은 0while window으로 설정하면 다음 사용 가능한 윈도우 식별자가됩니다.

분할 창 3을 다시 가져 오십시오.

창 얻으려면 3다시 레이아웃 선택 창 2및 문제를 Prefix- :join-pane -vs 1:2.0말하는 tmux창 분할 2수직으로 ( -v)를하고 (소스) 창 (가입 -s식별자)를 1:2.0. 선택적으로 session또는 pane식별자를 삭제할 수 있습니다 . 에 편리하게 접근, 그 TMUX 저장을 또한 명령 행 역사를 참고 Prefix- :- Up.

당신은 아마도 그것을 익힐 시간이 필요할 것입니다. 그러나 일단 당신이 그렇게하면, 당신에게 편리한 사용자 정의 키 바인딩을 생각해 낼 수 있습니다.


이 질문 에는 워크 플로를 개선 할 수있는 유용한 정보와 요령 포함되어 있습니다.


명확한 지침! 내 대답보다 훨씬 잘 작동합니다.
Bernhard

기본적으로 창 3은 마지막 창으로 분할됩니다. 현재 세션에 3 개의 창이 이미 있으면 창 3이됩니다 (창이 0에서 시작한다고 가정). "창 3"의 3은 열린 창에서 사용자 정의 키 바인딩 에서이 작업을 수행하려면 어떻게해야합니까?
CodyChan

5

아이디어 : tmux에서 tmux를 실행하십시오.

원래 설정 :

창 1 및 창 2; 나란히. 창 1에서 정상적으로 vim을 실행하십시오.

분할 창 2에서 tmux를 다시 실행하고 두 개의 분할 창을 작성하십시오 (이번에 하나의 분할 창). 그런 다음 창 2.1에서 vim을 실행하고 창 2.2에서 CLI를 실행하십시오. 이를 통해 Vim의 두 번째 인스턴스를 사용하여 창 2.1을 전체 화면으로 표시하여 원하는 동작을 수행 할 수 있습니다.


이것이 내가 상자 생각에서 부르는 것입니다!
user881300 2016 년

감사합니다 user881300. 약간의 결함이 있습니다 (예 : 명령을 보낼 수있는 것은 몇 가지 단점이 있습니다). 테스트 한 후에이를보다 완전한 대답으로 업데이트하고 싶습니다. 비슷한 기능이 필요합니다.
BinaryBen

2
@ user881300 엄밀히 말하면, 이것은 상자 사고의 상자입니다.
Mateen Ulhaq

3

창 3을 숨기는 대신 약간 속임수를 사용하여 매우 작게 만들 수도 있습니다.

분할 창 2가 활성 분할 창 인 경우

PREFIX : resize-pane -D 40

그런 다음 다시 위로 올리려면

PREFIX : resize-pane -D 28

28을 적절한 숫자로 바꾸거나 대신 PREFIXEsc4자동 크기 조정을 시도 할 수 있습니다.


사용하여 창 크기를 조정 set -g mouse-resize-pane on했지만 크기 조정 이외의 다른 옵션이 있습니까?
user881300

@ user881300 나는 tmux어떤 방법으로도 전문가가 아니지만 이것이 가능한지 궁금하다.
Bernhard

1
CTRL+B, ALT+<arrow direction to resize>CTRL+B, ESC, 4(thx @Bernhard) 보다 복원하십시오.
FelikZ

1

나는 지금이 질문은 거의 5 세이지 만 비슷한 것을하고 싶었고 user78291의 답변 덕분에 다음 키 바인딩을 생각해 냈습니다 .

bind-key ! break-pane -d -n _hidden_pane
bind-key @ join-pane -s $.1

이렇게 Prefix!하면 현재 창을 숨기고 Prefix@다시 가져올 수 있습니다. 좋은 방법은이 방법으로 여러 개의 창을 숨길 수 있다는 것입니다.

그것은 완벽하지는 않지만 창을 숨기고 잘 다시 가져 오는 작업을 수행합니다.


0

나는 이것이 실제로 작업중 인 창을 숨기는 것이 아니라는 것을 알고 있지만 tmux가 선택된 창에 공통 명령을 보내는 것을 막고 훨씬 간단한 해결책을 얻었습니다.

창을 시각적으로 숨기고 싶지 않고 창으로가는 입력을 중지하려는 경우. 시나리오는 열려있는 5 개의 창에 명령을 보내고 싶지만 2 개의 창에는 보내지 않는 것이 좋습니다.

이 사용 사례 ctrl + s에서는 명령을 원하지 않는 창에서 수행 할 수 있습니다 ( ctrl + s모든 입력을 창에 고정).

완료되면를 눌러 ctrl + c다시 나오십시오.

참고 : ctrl + q해당 화면의 모든 명령이 실행되므로 명령을 누르지 마십시오 . ctrl + c이것을하지 않을 것입니다 (우분투에서 이것을 시도했습니다).

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