두 창 사이의 창 미러링


14

단일 tmux 세션의 두 개의 서로 다른 창에 동일한 창이 나타날 수 있습니까?

일반적으로 메인 창에 단일 가로 분할이 있으며 상단 창에는 vim (터미널 높이의 약 80-90 %)이 있고 하단 창에는 작업중 인 프로그램을 실행하는 명령 줄이 있습니다. 하단 창이 너무 작아서 종종 오류 출력을 볼 수 없으며 tmux의 키보드 단축키를 사용하여 뒤로 스크롤하면 번거 롭습니다. 두 번째 창을 같은 창에 연결하여 더 많은 오류 출력을보아야 할 경우 스크롤 백을 처리하지 않고도 두 번째 창으로 빠르게 전환 할 수 있습니다. 이게 가능해?

(한 가지 단점은 tee와 같은 것을 사용하여 stdout을 로그 파일에 쓰고 내 두 번째 창에 꼬리를 붙이는 것입니다.하지만 필요하지는 않기를 바랍니다)

답변:


7

기본적으로 눌러 창의 "줌 상태"를 전환 할 수 있습니다 Prefixz(기본 접두어입니다 Ctrl+B).

이렇게하면 현재 창 (예 : 명령 줄 창)이 전체 창을 차지하게됩니다. 보도 Prefixz다시 "확대 해제"창에.


10

이것이 당신이 할 수없는 일 중 하나라고 두려워합니다 tmux(크기가 다른 여러 공간에 하나의 창에 표시되는 문제가 주된 이유라고 생각합니다). 그러나 특정 작업을 일부 키 조합에 바인딩하는 방법을 기반으로 여러 가지 방법으로 문제를 해결할 수 있습니다. 많이 사용하는 레이아웃에 따라 달라 지므로 언급 한 두 개의 창이있는 간단한 레이아웃 만 있으면 인생을 훨씬 쉽게 만들 수 있습니다.

  1. rotate-window -창을 바꾸면 명령 출력에 80 % -90 % (ViM의 경우 작은 창)가 표시됩니다.

  2. break-pane vs. join-pane -v -p <preview_percentage> -t !

  3. pipe-pane으로 command명명 된 파이프에 버퍼링 재 (로 만든 즉, 파일 시스템 노드 인 mkfifo) - 다음 사용하는 tail -f다른 창에서 명명 된 파이프를.

  4. 출력을로 파이프하십시오. less이 모드에는 다음과 같은 모드가 tail있습니다 (최소한 GNU 모드 ).

  5. resize-pane -Z작은 패널에서 전체 터미널을 확대합니다. 이후에 확대 / 축소를 해제하면 계속 작동하므로 편안하게 작동하려면 약간의 속임수가 필요합니다.


2
BTW- "크기가 다른 여러 공간에 하나의 분할 창이 표시되는 문제가 주요 원인 일 것으로 예상됩니다."구현의 복잡성에 영향을 줄 수 있지만 tmux는 그룹화를 통해 창 레벨에서 동일한 것을 지원합니다. 세션 unix.stackexchange.com/questions/24274/… . 작은 창에 아래에 패딩을 추가하기 만하면됩니다. 이론적으로 창 미러링은 같은 방식으로 수행 할 수 있습니다.
mahemoff

흠 ... 네 말이 맞다.
peterph

1

스크립트를 사용하여 의사 세션을 파일로 출력 한 다음 tail해당 파일을 두 번째 창 에 출력 할 수 있습니다 .

작업 창에서

script -f tailme.out

그리고보기 창에서.

tail -f tailme.out

1

나는 당신의 경우 Prefix+ z가 가장 직접적인 해결책이라고 다른 사람들과 동의 하지만, 창을 미러링하는 일반적인 질문에 대해서는 작동 할 수있는 약간의 해킹이 있습니다-tmux 안에 스크린 세션을 중첩시킵니다.

gnu 화면을 설치 한 다음 미러링하려는 창에서 시작하십시오. 그런 다음 screen -x다른 창에 연결하십시오.

원하는 경우 창에 다른 tmux 세션을 중첩시킬 수도 있지만 tmux 세션은주의해서 중첩해야합니다.

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