Wie schließe ich andere Fenster in tmux?

9

Ich schreibe einige Funktionen ein .bashrc, um tmuxdie Verwendung zu vereinfachen:

#!/bin/bash
# .bashrc

# vim            tmux
#-----  --------------------
tabc()  { tmux kill-window; }
tabe()  { tmux new-window; }
tabf()  { tmux find-window $@; }
tabn()  { tmux next-window; }
tabo()  { ; }                         # <-- How to `tabonly`?
tabp()  { tmux previous-window; }
qa()    { tmux kill-session; }
sp()    { tmux split-window; }
vsp()   { tmux split-window -h; }
on()    { tmux kill-pane -a; }

typeset -fx tab{c,e,f,n,o,p} {,v}sp qa on

Ich möchte den tabonlyBefehl implementieren , weiß aber nicht wie.

kev
quelle

Antworten:

5

Mit dem Fenster, das Sie als aktuelles Fenster behalten möchten, rufen Sie einfach next-windowund kill-windowwiederholt auf, bis ein next-windowFehler auftritt:

while tmux next-window 2> /dev/null; do
    tmux kill-window
done
chepner
quelle
6
Die nächste Version von tmux (dh 1.7) muss kill-window -aalle Fenster außer dem aktuellen Fenster schließen.
Chris Johnsen
3

Zum einfachen Kopieren ist tmux> = 1,7:

tabo()  { tmux kill-window -a; }

Danke Chris Johnsen.

Alexander
quelle