Come chiudere una finestra in tmux?


214

Come chiudere una finestra in tmux? Come il Ctrlakcollegamento a schermo con Ctrlaessere il prefisso.


2
Per cosa stavi cercando su Google? Se cerco il titolo della tua domanda, questo è il risultato migliore. Ha un utile elenco di scorciatoie (incluso quello identificato da cnicutar di seguito)
Geoff

29
Bene, ora questa domanda in sé è il massimo successo su google ...
jottr

Risposte:


43

La risposta di Kent ha risposto completamente alla tua domanda, tuttavia se stai cercando di modificare la configurazione di tmux in modo che sia simile a GNU Screen, ecco un tmux.conf che ho usato per realizzare questo:

# 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

Questo è eccessivamente dettagliato e non indica dove si trova la risposta
rodorgas,

313

prova Prefix+&

se hai

bind q killp

nel tuo .tmux.conf, puoi premere Prefix+ qper uccidere anche la finestra, solo se c'è solo un pannello in quella finestra.

il valore predefinito del prefisso sopra è Ctrl + b, quindi per terminare la finestra di default puoi usare Ctrl +b &


5
Funziona benissimo :, Ctrl+b &nota, devi confermare con yper uccidere davvero la finestra corrente inclinando tutti i riquadri in quella finestra. Verrai inserito nella finestra che hai usato l'ultima volta.
rubo77,

1
Vale la pena notare che per impostazione predefinita Prefix+ qmostra il numero di riquadro, quindi l'assegnazione killpa questa combinazione sovrascriverà questo collegamento.
kmo,

106

<Prefix> & per aver ucciso una finestra

<Prefix> x per aver ucciso un riquadro

Se esiste un solo riquadro (ovvero la finestra non è suddivisa in più riquadri, <Prefix> xla finestra viene uccisa)

Come sempre ripetuto, <Prefix>è generalmente CTRL+b. (Penso che per le domande dei principianti, possiamo solo dire CTRL+btutto il tempo e non parlare del prefisso, ma comunque :))


Non ho potuto uccidere solo il riquadro con <prefix> x, solo con <prefix>:, quindi digitando respawn-pane -k.
Pablo A

87

Generalmente:

tmux kill-window -t window-number

Ad esempio, se sei nella finestra 1 e vuoi uccidere la finestra 9:

tmux kill-window -t 9

2
Questo. (Grazie mille a proposito!) Se fatto in remoto dove tmux è in esecuzione in qualche altro terminale, si può fare INFO=$(tmux new-window -P notepad)seguito da tmux kill-window -t $INFO.
Johann,

70

Per me la soluzione è simile a:

  1. ctrl+b q per mostrare i numeri del riquadro.
  2. ctrl+b x per uccidere il riquadro.

Uccidere l'ultimo riquadro ucciderà la finestra.


2
Questa è la soluzione migliore quando hai appena finito un processo all'interno di una finestra di tmux.
Philip Kirkbride,

1
Killing last pane will kill window. Non funziona per me? Sto usando mac
Andy Aldo il

sì, penso che questa sia la migliore soluzione di sempre, in assoluto.
Calcolo

33

Se vuoi farlo una volta sola, senza aggiungere un collegamento, puoi sempre digitare

<prefix> 
:
kill-window
<enter>

10

Mentre hai chiesto come uccidere una finestra resp. riquadro , spesso non vorrei ucciderlo ma semplicemente per riportarlo a uno stato funzionante (il layout dei riquadri è importante per me, uccidere un riquadro lo distrugge quindi devo ricrearlo); tmux fornisce i respawncomandi in tal senso: respawn-paneresp. respawn-window. Solo che persone come me potrebbero trovare questa soluzione qui.


9

Ci sono molti modi diversi per farlo, ma il mio preferito è semplicemente digitare 'exit' sul prompt di bash.


3
Questo presume che bash sia in esecuzione nella finestra. La finestra che volevo uccidere che mi ha portato a questa pagina è la lista dei comandi di tmux - che non ha shell per uscire.
Michael Campbell,

1
Se stavi guardando l'elenco dei comandi visualizzati da <prefix> +?, Puoi lasciarlo premendo q o <RET>.
Scott Centoni,

8

ctrl + d uccide una finestra nel terminale Linux, funziona anche in tmux.

Questo è un tipo di approccio.


2
Nota che questo collegamento significa semplicemente "fine dei dati". Funziona solo se il processo attualmente in esecuzione nel riquadro tmux accetta questo segnale e termina se stesso alla ricezione (ad es. Come fa bash). Poiché non è presente alcun processo nel riquadro, viene chiuso da tmux. Non funziona in tutti i casi.
nyi,

questo è wat che stavo cercando.
thedanotto

1
Questo va bene se c'è una shell in esecuzione nella finestra, ma se c'è solo un'applicazione bloccata, è necessario qualcosa di più brutale. La risposta di Nikolay Fominyh funziona bene.
oz1cz,

Questo uccide solo un riquadro, non una finestra.
StevieD

1

Per impostazione predefinita
<Prefix>e per uccidere una finestra
<Prefix>x per uccidere un riquadro
E puoi aggiungere informazioni di configurazione

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

quindi
<Prefix>X per aver ucciso una sessione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.