Comment fermer une fenêtre dans tmux?

214

Comment fermer une fenêtre dans tmux? Comme le Ctrlakraccourci à l' écran avec Ctrlale préfixe.

Dmitry
la source
2
Pourquoi cherchais-tu sur Google? Si je recherche le titre de votre question, c'est le hit top. Possède une liste utile de raccourcis (y compris celui identifié par cnicutar ci-dessous)
Geoff
29
Eh bien, maintenant, cette question elle-même est le top hit sur google ...
jottr

Réponses:

43

La réponse de Kent a pleinement répondu à votre question, mais si vous cherchez à changer la configuration de tmux pour qu'elle soit similaire à GNU Screen, voici un tmux.conf que j'ai utilisé pour accomplir cela:

# Prefix key
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# Keys
bind k confirm kill-window
bind K confirm kill-server
bind % split-window -h
bind : split-window -v
bind < resize-pane -L 1
bind > resize-pane -R 1
bind - resize-pane -D 1
bind + resize-pane -U 1
bind . command-prompt
bind a last-window
bind space command-prompt -p index "select-window"
bind r source-file ~/.tmux.conf

# Options
set -g bell-action none
set -g set-titles on
set -g set-titles-string "tmux (#I:#W)"
set -g base-index 1
set -g status-left ""
set -g status-left-attr bold
set -g status-right "tmux"
set -g pane-active-border-bg black
set -g pane-active-border-fg black
set -g default-terminal "screen-256color"

# Window options
setw -g monitor-activity off
setw -g automatic-rename off

# Colors
setw -g window-status-current-fg colour191
set -g status-bg default
set -g status-fg white
set -g message-bg default
set -g message-fg colour191
Jimmy Zelinskie
la source
Ceci est trop verbeux et n'indique pas où la question est répondue
rodorgas
313

essayez Prefix+&

si tu as

bind q killp

dans votre .tmux.conf, vous pouvez également appuyer sur Prefix+ qpour tuer la fenêtre, uniquement s'il n'y a qu'un seul panneau dans cette fenêtre.

la valeur par défaut du préfixe ci-dessus est Ctrl + b, donc pour fermer la fenêtre par défaut, vous pouvez utiliser Ctrl +b &

Kent
la source
5
Cela fonctionne très bien: Ctrl+b &notez que vous devez confirmer avec ypour vraiment tuer la fenêtre actuelle en supprimant tous les volets de cette fenêtre. Vous serez placé à l'intérieur de la fenêtre que vous avez utilisée en dernier.
rubo77
1
Il convient de noter que par défaut Prefix+ qaffiche le numéro du volet, donc l'affectation killpà cette combinaison remplacera ce raccourci.
kmo
106

<Prefix> & pour avoir tué une fenêtre

<Prefix> x pour tuer un volet

S'il n'y a qu'un seul volet (c'est-à-dire que la fenêtre n'est pas divisée en plusieurs volets, <Prefix> xcela tuerait la fenêtre)

Comme toujours itéré, <Prefix>est généralement CTRL+b. (Je pense que pour les questions des débutants, nous pouvons simplement dire CTRL+btout le temps, et ne pas parler du tout de préfixe, mais de toute façon :))

Rushi Agrawal
la source
Je ne pouvais pas tuer uniquement le volet avec <prefix> x, uniquement avec <prefix>:, puis en tapant respawn-pane -k.
Pablo A
87

Généralement:

tmux kill-window -t window-number

Ainsi, par exemple, si vous êtes dans la fenêtre 1 et que vous voulez tuer la fenêtre 9:

tmux kill-window -t 9
Gary
la source
2
Ce. (Merci beaucoup d'ailleurs!) Si cela est fait à distance où tmux s'exécute dans un autre terminal, on peut le faire INFO=$(tmux new-window -P notepad)suivi de tmux kill-window -t $INFO.
Johann
70

Pour moi, la solution ressemble à:

  1. ctrl+b q pour afficher les numéros de volet.
  2. ctrl+b x pour tuer le volet.

Tuer le dernier volet tuera la fenêtre.

Nikolay Fominyh
la source
2
C'est la meilleure solution lorsque vous venez de terminer un processus dans une fenêtre tmux.
Philip Kirkbride
1
Killing last pane will kill window. Ça ne marche pas pour moi? J'utilise Mac
Andy Aldo
oui, je pense que c'est la meilleure solution jamais, jamais et jamais.
Calcul
33

Si vous voulez le faire une seule fois, sans ajouter de raccourci, vous pouvez toujours taper

<prefix> 
:
kill-window
<enter>
gatoatigrado
la source
10

Alors que vous avez demandé comment tuer une fenêtre resp. volet , je ne voudrais souvent pas le tuer mais simplement le remettre dans un état de fonctionnement (la disposition des volets est importante pour moi, tuer un volet le détruit donc je dois le recréer); tmux fournit les respawncommandes à cet effet: respawn-paneresp. respawn-window. Juste que des gens comme moi puissent trouver cette solution ici.

Tom Regner
la source
9

Beaucoup de façons différentes de le faire, mais mon préféré est simplement de taper 'exit' sur l'invite bash.

smp
la source
3
Cela suppose que bash s'exécute dans la fenêtre. La fenêtre que je voulais tuer qui m'a conduit à cette page est la liste des commandes tmux - qui n'a pas de shell à quitter.
Michael Campbell
1
Si vous regardiez la liste des commandes affichées par <prefix> +?, Vous pouvez la laisser en appuyant sur q ou <RET>.
Scott Centoni
8

ctrl + d tue une fenêtre dans le terminal linux, fonctionne également dans tmux.

C'est une sorte d'approche.

pingsoli
la source
2
Notez que ce raccourci signifie simplement «fin des données». Cela ne fonctionne que si le processus en cours d'exécution dans le volet tmux accepte ce signal et se termine lors de sa réception (par exemple, comme le fait bash). Parce qu'il n'y a pas de processus dans le volet, il est fermé par tmux. Ne fonctionne pas dans tous les cas.
nyi
c'est le wat que je cherchais.
thedanotto
1
C'est OK s'il y a un shell en cours d'exécution dans la fenêtre, mais s'il n'y a qu'une application figée, quelque chose de plus brutal est nécessaire. La réponse de Nikolay Fominyh fonctionne bien.
oz1cz
Cela ne tue qu'un volet, pas une fenêtre.
StevieD
1

Par défaut
<Prefix>& pour tuer une fenêtre
<Prefix>x pour tuer un volet
Et vous pouvez ajouter des informations de configuration

vi ~/.tmux.conf
bind-key X kill-session

puis
<Prefix>X pour avoir tué une session

DinoStray
la source