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.