Saya sudah mendapat solusi tanpa perlu skrip eksternal. Masukkan yang berikut ini di .tmux.conf Anda:
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;"'
Tekan [PREFIX] -i dan berikan lokasi yang diinginkan. 2 perintah pilih-jendela terakhir pastikan jendela 'sebelumnya' diatur seperti yang diharapkan dan Anda pergi ke jendela yang dimasukkan.
EDIT: ok, saya berbicara terlalu cepat. Aku harus mengubah #I
ke #{window_id}
karena indeks jendela perubahan untuk beberapa jendela pada penyisipan. Fungsi baru (dengan menambahkan baris baru untuk keterbacaan):
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; \
"'
Saya mulai menggunakan versi yang disederhanakan, melalui 2 perintah berikut di .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'
Awalan-i menyisipkan jendela baru pada posisi x ketika jendela x ada, dan memindahkan jendela di atasnya. Awalan-I membuat jendela baru pada posisi x ketika jendela x tidak ada.