comment fermer tous les volets, mais le volet actuel dans tmux

13

J'ai une clé pour configurer les volets à mon goût, mais parfois les choses se gâchent ou deviennent incontrôlables et je veux fermer tous les volets et réexécuter le script. Existe-t-il une tmuxcommande simple pour fermer tous les volets sauf celui dans lequel je suis actuellement?

Pouvoirs numériques
la source

Réponses:

21

Vous pouvez utiliser la commande "kill-pane".

 kill-pane [-a] [-t target-pane]
               (alias: killp)
         Destroy the given pane.  If no panes remain in the containing window, it is also destroyed.  The -a option kills all but the pane given with -t.

Ainsi, par exemple, si vous souhaitez supprimer tous les volets, à l'exception du volet 0:

kill-pane -a -t 0

Si vous ne savez pas quels sont vos numéros de volet, vous pouvez utiliser la commande "display-panes":

 display-panes [-t target-client]
               (alias: displayp)
         Display a visible indicator of each pane shown by target-client.  See the display-panes-time, display-panes-colour, and display-panes-active-colour
         session options.  While the indicator is on screen, a pane may be selected with the '0' to '9' keys.
JC Yamokoski
la source
1
Merci, j'ai fini par utiliser kill-pane mais j'avais du mal à le faire fonctionner tout le temps. Ce que j'ai fini par faire était de diviser la fenêtre (split-window-h) de cette façon, je pouvais être sûr qu'il y avait plus d'un volet, puis j'ai fait un (break-pane -d) pour déplacer mon cadre actuel vers une nouvelle fenêtre dans l'arrière-plan. Ensuite, je fais kill-window. De cette façon, je serai dans un volet dans une nouvelle fenêtre (la seule).
Digital Powers
@DigitalPowers J'aime votre solution, mais parfois elle peut rendre le volet divisé difficile à trouver. Surtout si vous fermez beaucoup de volets. Comme je me liais à une clé, j'ai utilisé l'option hacky de swap-pane -Ucommandes "assez" pour déplacer le volet en position 0, puis kill-pane -a -t 0.
Edd Steel du
6
Remarque: tmux kill-pane -atue tout sauf le volet actuel. Vous n'avez pas besoin de spécifier la -tcible si vous aimez le volet actuel.
docwhat
7

Il y a aussi "^ b!" selon http://www.dayid.org/os/notes/tm.html (je l'ai également essayé et cela a fonctionné pour moi)

George Boulos
la source
4
Hey! il semble que cela fonctionne, mais ce qu'il fait en fait, c'est déplacer ce volet vers une nouvelle "fenêtre" - sorte de le divorcer de la fenêtre parente - de sorte que les autres volets existent toujours, ils sont juste dans une fenêtre différente.
Brad Parks