화면처럼 tmux의 창 내에서 창을 순환하는 방법은 무엇입니까?

화면처럼 tmux의 창 내에서 창을 순환하는 방법은 무엇입니까?

제 생각에는tmux 창을 창으로 이동같은 문제인데 꼭 그렇지는 않은 것 같습니다.

GNU 화면을 많이 사용하기 때문에 동일한 작업을 수행하기 위해 tmux를 찾고 있습니다. 내가 자주 하는 일 중 하나는 몇 가지 다른 창을 여는 것입니다. 하나는 vim에서 일부 코드를 사용하고, 두 개의 터미널 창은 코드를 테스트하기 위해 열리고, 때로는 한두 개의 창을 열어 다양한 다른 작업을 수행합니다. 나는 화면을 수직으로 분할하고 일반적으로 vim 창을 위쪽 창에 배치한 다음 다른 창 중 하나를 아래쪽 창에 배치합니다.

그런 다음 내가 사용하는 주요 명령은 창 Ctrla간 회전 Tab및 창 내 창 간 회전 입니다 Ctrla. n예를 들어, vim이 위쪽 창에 있을 때 아래쪽 창으로 전환한 다음 필요한 모든 작업을 수행하면서 다른 터미널 사이를 순환합니다. 화면은 항상 분할된 상태로 유지됩니다.

문제는 tmux 에서 screen 에 해당하는 항목을 찾을 수 없다는 것입니다 Ctrla. n창 전환은 창 내에서 작동하지 않는 것 같지만 완전히 이동합니다. 화면이 분할된 경우 유일한 두 가지 옵션은 분할되지 않은 창으로 이동한 다음 분할하거나 창을 하위 분할하는 것 같습니다. 내가 찾고 있는 것도 마찬가지다.

제안 사항이 있습니까(화면에 고정하는 것 외에)?

답변1

나는 당신이 찾고 있는 것이 Ctrlb+( , , , )라고 믿습니다. 이를 통해 창 사이를 이동할 수 있습니다.

답변2

멀티플렉서그리고화면다양한 모델이 있으므로 완전히 동일한 것은 없습니다.

존재하다화면즉, 분할을 사용하면 동시에 여러 창을 표시할 수 있습니다. next( C-a n) 분할된 활성 섹션을 통해 창을 회전합니다. 이를 통해 분할된 활성 영역 내에서 "숨겨진" 창을 회전할 수 있습니다.

존재하다멀티플렉서"분할"이라는 용어는 창을 하나 이상의 창으로 나눕니다. 분할 창의 각 부분은 별도의 창이며, 창은 숨겨지지 않으며(창을 선택한 경우(표시) 창의 모든 창도 마찬가지임) 창은 창 내에서만 볼 수 있습니다. 단일 분할 내에서 사용됩니다( 창은 여러 창에 위치할 수 없으며 동일한 창의 여러 분할에 위치할 수 없습니다. 창 내에서(또는 사이에서) 창을 이동하는 명령이 있지만 next창 내에서 창을 이동하는 것과 같은 방식은 아닙니다.화면.


다음과 같은 바인딩을 사용하여 유사한 효과를 정렬할 수 있습니다.

bind-key C-n swap-pane -s :+.top \; rotate-window -Ut :+

~/.tmux.conf이를 파일에 넣을 수도 있지만 입력/붙여넣기만 하면 Prefix :현재 서버 인스턴스에 바인딩할 수 있습니다.

바인딩을 사용하려면 기본 창을 선택하고 분할하고 기본 창 바로 뒤에 창 컨테이너 창을 만든 다음 바인딩을 사용하여 기본 창 내의 그룹에 있는 창을 회전합니다. 창 컨테이너 창.

설정을 만드는 방법은 다음과 같습니다.

  • "메인 창"으로 사용할 창을 선택합니다. 시작하다(예를 들어)내부에.

  • 기본 창을 두 개의 창으로 나눕니다.

    예를 들어 Prefix "( :split-window)

    이 창을 테스트 창(또는 로그 뷰어 등)으로 사용할 수 있습니다.

  • 기본 창 바로 뒤에 새 창("창 컨테이너")을 만듭니다.

    예를 들어 Prefix c( :new-window)

    "기본 창"과 "창 컨테이너" 창의 인덱스 사이에 다른 창이 없는 것이 중요합니다( +bind 명령에 사용된 창 지정자에서 "다음으로 높은 번호의 창"을 의미함).

  • 이 창을 여러 창으로 나눕니다. 세 개의 창을 회전하려면 창을 두 개의 창으로 분할합니다(세 번째 창은 기본 창의 창입니다).

    어쩌면 껍질이 필요할지도 몰라자식, 데이터베이스 인터페이스를 실행하기 위한 쉘입니다. 각 창을 "창 컨테이너" 창 내의 별도 창에 넣습니다.

  • "메인 창"으로 다시 전환합니다. "회전"하려는 창을 선택합니다.

    Prefix Up// Down/를 사용하여 창 Left사이를 이동할 수 있습니다 Right.

  • 바인딩을 호출하여 현재 창을 "창 컨테이너" 창의 첫 번째 창으로 바꾸고 ("무대 뒤에서") "창 컨테이너" 창 내에서 창을 회전합니다(다음 번에 바인딩이 실행될 때 첫 번째 창). 명령은 순서대로 "다음" 창으로 교체됩니다.

    Prefix Control- n(바인딩은 Cn을 사용하지만 원하는 대로 변경할 수 있습니다.)

  • 창을 뒤로 스크롤하려면 다음 명령을 사용할 수 있습니다.

바인딩 키 Cp 스왑 창 -s :+.bottom \;창 회전 -Dt :+

답변3

순서대로 한 번 누른 다음 다른 키를 눌러 창 위치를 지정할 수 bind -r있도록 사용합니다 . prefix시간 초과는 조정될 수 있습니다 repeat-time. 확인하다man tmux

bind -r Tab select-pane -t :.+

너가 선호한다면 hjkl,

bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R

답변4

ALTSHIFT이는 단축키 또는 + 를 사용하여 다른 창이나 창으로 이동할 수 있는 작은 구성입니다 arrow. 접두사 키를 사용할 필요가 없습니다. 아주 편안한!

## NAVIGATION: ############################

# Switch panes 
# Usage: "ALT+arrow keys" (without prefix key)
# from https://gist.github.com/spicycode
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
 
# Switch windows 
# usage: "SHIFT+arrow" (without prefix key)
bind -n S-Left  previous-window
bind -n S-Right next-window

마우스를 통해 창을 탐색할 수 있는 다음 코드에 관심이 있을 수도 있습니다. (사용법: 키 접두사 + m을 열면 M, 닫을 때는 M)

## MOUSE CONTROL: #########################
set -g mode-mouse off
set -g mouse-resize-pane off
set -g mouse-select-pane off
set -g mouse-select-window off

# Toggle mouse on 
bind m \
    set -g mode-mouse on \;\
    set -g mouse-resize-pane on \;\
    set -g mouse-select-pane on \;\
    set -g mouse-select-window on \;\
    display 'Mouse: ON'
    
# Toggle mouse off
bind M \
    set -g mode-mouse off \;\
    set -g mouse-resize-pane off \;\
    set -g mouse-select-pane off \;\
    set -g mouse-select-window off \;\
    display 'Mouse: OFF'

이 구성은 Tmux 1.6~1.9에서 테스트되었습니다.

관련 정보