다음 레이아웃을 사용하여 tmux 세션에 3개의 창이 열려 있다고 가정해 보겠습니다.
|----|--|--|
| 1 | 2| 3|
|----|--|--|
제가 하고 싶은 것은 이 레이아웃을 수평으로 뒤집는 것입니다. 그래서 다음과 같습니다:
|--|--|----|
| 3| 2| 1 |
|--|--|----|
이 작업을 수행하는 쉬운 방법(가급적 지름길)이 있습니까?
답변1
A는 swap-pane -s 0 -t 2
소스 창과 대상 창을 교체하고 가운데 창은 변경되지 않은 채로 둡니다.
list-panes
그런 다음 현재 크기를 알려주는 호출할 작은 스크립트를 작성할 수 있습니다 .
0: [40x23] [history 2/2000, 760 bytes] %0 (active)
1: [19x23] [history 2/2000, 466 bytes] %3
2: [19x23] [history 2/2000, 466 bytes] %4
그런 다음 resize-pane
각 창에 대해 명령을 실행하여 x 방향의 새 크기를 설정합니다. 예 /tmp/myscript
를 들어
#!/bin/bash
tmux swap-pane -s 0 -t 2
tmux list-panes |
awk '
$1~/^[0-9]:$/ { x[$1] = substr($2,2)+0 }
END { print "tmux resize-pane -t 0 -x " x["2:"]
print "tmux resize-pane -t 1 -x " x["1:"]
print "tmux resize-pane -t 2 -x " x["0:"] }' |
sh
그런 chmod +x /tmp/myscript
다음 바인딩에 추가합니다 ~/.tmux.conf
(예: letter 의 경우 o
일반적인 접두사 키 뒤에 입력).
bind-key o run-shell /tmp/myscript
답변2
이 명령을 사용할 수 있습니다 swap-pane
. 기본적으로 이는 C-b {
및 접두사 라고 C-b }
가정하여 바인딩됩니다 .C-b
tmux
특정 경우에는 Pane 에 집중 1
하고 두 번 수행할 수 있습니다 C-b }
. 그런 다음 창에 초점을 맞추고 한 번 3
수행합니다 C-b {
.
이를 달성하는 방법에는 여러 가지가 있습니다. C-b C-o
초점이 어디에 있든 를 사용하고 창에 초점을 두고 3
수행 할 수도 있습니다 C-b {
.
이 작업을 자주 수행하는 경우 에 추가할 수 있습니다 ~/.tmux.conf
.
이러한 명령 중 어느 것도 창 크기를 유지하지 않습니다. 왼쪽 창이 다른 두 창보다 한 번 더 컸다면 창을 이동한 후에도 그대로 유지됩니다. 즉, 창은 1
작아지고 창은 3
커집니다. 창 크기를 저장할 수 있는지 모르겠습니다.