Jak mogę efektywnie zmienić kolejność okien w Tmuxie? Na przykład mając ten zestaw okien:
0:zsh 1:elinks 2:mutt 3:irssi 4:emacs 5:rss 6:htop
Co musiałbym zrobić, aby przejść rss
między elinks
i mutt
, kończąc na:
0:zsh 1:elinks 2:rss 3:mutt 4:irssi 5:emacs 6:htop
Wiem, jak użyć, move-window
aby przesunąć okno do jeszcze nieużywanego indeksu i do osiągnięcia tego mógłbym użyć ich szeregu - ale oczywiście jest to bardzo żmudne.
Odpowiedzi:
swap-window
może Ci pomóc:Przesuwa bieżące okno w lewo o jedną pozycję.
Od man tmux :
Możesz powiązać go z kluczem:
Następnie możesz użyć
Shift+Left
i,Shift+Right
aby zmienić bieżącą pozycję okna.źródło
swap-window
poleceń (trzy w tym przypadku) - prawda?swap-window -s 2 -t 5
. To okno wymiany nr 2 z numerem okna 5.swap-window
poleceniu, ale nie wiedziałem o prefiksach-
/,+
aby kierować na poprzednie / następne okno.swap-window
w nowszych wersjach TmuxAkceptowana i wysoko oceniana odpowiedź jest poprawna, chociaż zachowanie w najnowszych wersjach tmux powoduje, że polecenie swap-window nie utrzymuje cię w tym samym oknie. Więc działa raczej nieintuicyjnie, twoje aktywne okno zostanie zamienione w tym kierunku, ale pozostaniesz w tym samym miejscu!
Aby rozwiązać ten problem, po prostu rozszerz powiązanie, aby go wykonać. Na przykład z mojej konfiguracji tmux:
źródło
Oto działające rozwiązanie opakowane w funkcję bash.
Bonus: pozostań w tym samym oknie, jeśli nie wpłynie to na bieżące aktywne okno.
źródło
Jeśli
tmux
jest wersja 1.7 lub wyższalub
w
.tmux.conf
celu automatycznego robić w przyszłości.źródło