Wie beende ich ein Fenster in tmux?

213

Wie beende ich ein Fenster in tmux? Wie die CtrlakVerknüpfung im Bildschirm mit Ctrladem Präfix.

Dmitry
quelle
2
Wofür hast du gegoogelt? Wenn ich nach Ihrem Fragentitel suche, ist dies der Top-Hit. Hat eine nützliche Liste von Verknüpfungen (einschließlich der von cnicutar unten identifizierten)
Geoff
29
Nun, jetzt ist diese Frage selbst der Top-Hit auf Google ...
jottr

Antworten:

43

Die Antwort von Kent hat Ihre Frage vollständig beantwortet. Wenn Sie jedoch die Konfiguration von tmux so ändern möchten, dass sie der von GNU Screen ähnelt, finden Sie hier eine tmux.conf, mit der ich dies erreicht habe:

# 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
quelle
Dies ist zu ausführlich und zeigt nicht an, wo die Frage beantwortet wird
Rodorgas
312

versuche Prefix+&

Wenn Sie haben

bind q killp

In Ihrem .tmux.confkönnen Sie auch Prefix+ drücken q, um das Fenster zu schließen, nur wenn sich nur ein Fenster in diesem Fenster befindet.

Der Standardwert für das obige Präfix ist Ctrl + b. Um das Fenster standardmäßig zu beenden, können Sie Ctrl + verwendenb &

Kent
quelle
5
Dies funktioniert einwandfrei : Ctrl+b &Beachten Sie, dass Sie bestätigen müssen y, um das aktuelle Fenster einschließlich aller Fenster in diesem Fenster wirklich zu beenden. Sie werden in das Fenster gestellt, das Sie zuvor verwendet haben.
rubo77
1
Es ist erwähnenswert, dass Prefix+ standardmäßig die Fensternummer qanzeigt. Wenn Sie killpdieser Kombination also zuweisen , wird diese Verknüpfung überschrieben.
kmo
106

<Prefix> & für ein Fenster zu töten

<Prefix> x für das Töten einer Scheibe

Wenn es nur einen Bereich gibt (dh das Fenster ist nicht in mehrere Bereiche aufgeteilt, <Prefix> xwürde das Fenster zerstört)

Wie immer iteriert, <Prefix>ist in der Regel CTRL+b. (Ich denke, für Anfängerfragen können wir einfach die CTRL+bganze Zeit sagen und überhaupt nicht über Präfixe sprechen, aber trotzdem :))

Rushi Agrawal
quelle
Ich konnte nicht nur den Bereich mit <Präfix> x beenden, sondern nur mit <Präfix>: und dann tippen respawn-pane -k.
Pablo A
87

Allgemein:

tmux kill-window -t window-number

Wenn Sie sich beispielsweise in Fenster 1 befinden und Fenster 9 beenden möchten:

tmux kill-window -t 9
Gary
quelle
2
Dies. (Vielen Dank übrigens!) Wenn Sie remote ausgeführt werden, wo tmux in einem anderen Terminal ausgeführt wird, können Sie dies tun, INFO=$(tmux new-window -P notepad)gefolgt von tmux kill-window -t $INFO.
Johann
69

Für mich sieht die Lösung so aus:

  1. ctrl+b q um Fensternummern anzuzeigen.
  2. ctrl+b x Scheibe zu töten.

Wenn Sie das letzte Fenster töten, wird das Fenster geschlossen.

Nikolay Fominyh
quelle
2
Dies ist die beste Lösung, wenn Sie gerade einen Prozess in einem tmux-Fenster abgeschlossen haben.
Philip Kirkbride
1
Killing last pane will kill window. Funktioniert bei mir nicht Ich benutze Mac
Andy Aldo
Ja, ich denke, dies ist die beste Lösung aller Zeiten.
Kalkül
33

Wenn Sie dies nur einmal tun möchten, ohne eine Verknüpfung hinzuzufügen, können Sie jederzeit eingeben

<prefix> 
:
kill-window
<enter>
gatoatigrado
quelle
10

Während Sie gefragt haben, wie man ein Fenster bzw. Fenster , ich möchte es oft nicht töten, sondern nur, um es wieder in einen funktionierenden Zustand zu versetzen (das Layout der Fenster ist für mich von Bedeutung, das Töten eines Fensters zerstört es, sodass ich es neu erstellen muss); tmux liefert die entsprechenden respawnBefehle: respawn-paneresp. respawn-window. Nur dass Leute wie ich diese Lösung hier finden können.

Tom Regner
quelle
9

Es gibt viele verschiedene Möglichkeiten, dies zu tun, aber mein Favorit ist einfach, an der Bash-Eingabeaufforderung 'exit' einzugeben.

smp
quelle
3
Dies setzt voraus, dass Bash im Fenster ausgeführt wird. Das Fenster, das ich beenden wollte und das mich zu dieser Seite führte, ist die Liste der tmux-Befehle - das hat keine Shell zum Beenden.
Michael Campbell
1
Wenn Sie sich die Liste der von <Präfix> +? Angezeigten Befehle angesehen haben, können Sie diese durch Drücken von q oder <RET> verlassen.
Scott Centoni
8

ctrl + d tötet ein Fenster im Linux-Terminal, funktioniert auch in tmux.

Dies ist eine Art Ansatz.

Pingsoli
quelle
2
Beachten Sie, dass diese Verknüpfung nur "Datenende" bedeutet. Es funktioniert nur, wenn der aktuell im tmux-Bereich ausgeführte Prozess dieses Signal akzeptiert und sich beim Empfang selbst beendet (z. B. wie bei bash). Da sich im Bereich kein Prozess befindet, wird er von tmux geschlossen. Funktioniert nicht in allen Fällen.
Nyi
Das ist Wat, wonach ich gesucht habe.
Thedanotto
1
Dies ist in Ordnung, wenn sich eine laufende Shell im Fenster befindet, aber wenn nur eine eingefrorene Anwendung vorhanden ist, ist etwas Brutaleres erforderlich. Die Antwort von Nikolay Fominyh funktioniert gut.
oz1cz
Dies tötet nur eine Scheibe, kein Fenster.
StevieD
1

Standardmäßig
<Prefix>& zum Beenden eines Fensters
<Prefix>x zum Beenden eines Fensters
Und Sie können Konfigurationsinformationen hinzufügen

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

dann
<Prefix>X zum Beenden einer Sitzung

DinoStray
quelle