tmux에는 다음 과 같이 지정된 빈 인덱스 로 창을 이동할 수있는 "move-window"명령이 있습니다 .
move-window -t 3
그러나 인덱스 3이 이미 사용 중이면 현재 창을 위치 3으로 이동할 수 없습니다.
이미 가져온 경우에도 3 번 위치에서 내 창을 이동 (삽입) 한 다음 다른 후속 창의 창 번호를 늘릴 수있는 옵션을 찾고 있습니다 (예 : 원래 3 번 창) 4, 다음은 5 등입니다.)
tmux에는 다음 과 같이 지정된 빈 인덱스 로 창을 이동할 수있는 "move-window"명령이 있습니다 .
move-window -t 3
그러나 인덱스 3이 이미 사용 중이면 현재 창을 위치 3으로 이동할 수 없습니다.
이미 가져온 경우에도 3 번 위치에서 내 창을 이동 (삽입) 한 다음 다른 후속 창의 창 번호를 늘릴 수있는 옵션을 찾고 있습니다 (예 : 원래 3 번 창) 4, 다음은 5 등입니다.)
답변:
아래 스크립트를 사용하면 원하는 것을 할 수 있습니다. 쉘 프롬프트에서 실행하거나 다음을 수행 할 수 있습니다.
:run "ins-move 2 5"
이 예에서는 창 2를 창 5 이전 위치로 이동합니다.
#!/bin/bash
for ((i=$1; i<$2-1; i++))
do
tmux swap-window -s :$i -t :$((i+1))
done
시험: new-window -a
새 창을 만들 때 -a 옵션을 사용하면 다음 인덱스에 새 창을 삽입 할 수 있지만 다른 모든 후속 창 인덱스는 자동으로 증가합니다.
tmux 1.9a
.이 기능은 이전 버전에서 제공되지 않았을 수 있습니다.
외부 스크립트가 필요없는 솔루션이 있습니다. .tmux.conf에 다음을 입력하십시오.
bind i command-prompt -p 'Insert window at:' 'run-shell "if tmux select-window -t %1; then tmux new-window -a; tmux swap-window -s %1 -t \$((%1+1)); else tmux new-window; tmux move-window -t %1; fi; tmux select-window -t #I; tmux select-window -t %1;"'
[PREFIX] -i를 누르고 원하는 삽입 위치를 제공하십시오. 마지막 2 개의 선택 창 명령은 '이전'창이 예상대로 설정되고 삽입 된 창으로 이동하는지 확인합니다.
편집 : 좋아, 나는 너무 빨리 말했다. 삽입시 일부 창의 창 색인이 변경되므로 로 변경 #I
해야했습니다 #{window_id}
. 새로운 기능 (가독성을 위해 줄 바꿈이 추가됨) :
bind i command-prompt -p 'Insert window at:' ' \
run-shell " \
if tmux select-window -t %1; then \
tmux new-window -a; \
tmux swap-window -s %1 -t \$((%1+1)); \
else \
tmux new-window; \
tmux move-window -t %1; \
fi; \
tmux select-window -t #{window_id}; \
tmux select-window -t %1; \
"'
.tmux.conf의 다음 두 명령을 통해 단순화 된 버전을 사용하기 시작했습니다.
bind i command-prompt -p 'Insert window at:' 'new-window -a -t %1; swap-window -t -1'
bind I command-prompt -p 'New window at:' 'new-window -t %1'
접두사 i는 윈도우 x 가 존재할 때 위치 x에 새 윈도우를 삽입하고 윈도우를 그 위로 위로 이동시킵니다. 접두사-I는 위치에 새로운 창을 만들고 X를 윈도우 때 x가 존재하지 않습니다.