Jak zamknąć okno w Tmuxie?

213

Jak zamknąć okno w Tmuxie? Podobnie jak w przypadku Ctrlakskrótu na ekranie z Ctrlabycia prefiks.

Dmitry
źródło
2
Po co byłeś w Google? Jeśli szukam twojego pytania, to jest to hit. Ma przydatną listę skrótów (w tym tę zidentyfikowaną przez cnicutar poniżej)
Geoff,
29
Cóż, teraz to pytanie jest największym hitem w Google ...
jottr

Odpowiedzi:

43

Odpowiedź Kenta w pełni odpowiedziała na twoje pytanie, jednak jeśli chcesz zmienić konfigurację tmux, aby była podobna do ekranu GNU, oto tmux.conf, którego użyłem, aby to zrobić:

# 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
źródło
Jest to zbyt szczegółowe i nie wskazuje, na które pytanie należy odpowiedzieć
rodorgas
312

spróbuj Prefix+&

Jeśli masz

bind q killp

w twoim .tmux.confmożesz również nacisnąć Prefix+, qaby zabić okno, tylko jeśli w tym oknie jest tylko jeden panel.

domyślnym prefiksem powyżej jest Ctrl + b, więc aby domyślnie zamknąć okno, możesz użyć Ctrl +b &

Kent
źródło
5
Działa to dobrze: Ctrl+b &pamiętaj, że musisz potwierdzić, yaby naprawdę zabić bieżące okno, włączając wszystkie szyby w tym oknie. Zostaniesz umieszczony w oknie, którego używałeś wcześniej.
rubo77
1
Warto zauważyć, że domyślnie Prefix+ qpokazuje numer panelu, więc przypisanie killpdo tej kombinacji zastąpi ten skrót.
kmo,
106

<Prefix> & za zabicie okna

<Prefix> x za zabicie szyby

Jeśli jest tylko jeden panel (tzn. Okno nie jest podzielone na wiele paneli, <Prefix> xzabiłoby to okno)

Jak zawsze iterowano, <Prefix>jest ogólnie CTRL+b. (Myślę, że w przypadku pytań dla początkujących możemy po prostu mówić CTRL+bcały czas i nie mówić w ogóle o prefiksie, ale w każdym razie :))

Rushi Agrawal
źródło
Nie mogłem zabić tylko panelu za pomocą <prefix> x, tylko za pomocą <prefix>:, a następnie pisania respawn-pane -k.
Pablo A
87

Ogólnie:

tmux kill-window -t window-number

Na przykład, jeśli jesteś w oknie 1 i chcesz zabić okno 9:

tmux kill-window -t 9
Gary
źródło
2
To. (Nawiasem mówiąc, bardzo dziękuję!) Jeśli zrobiono to zdalnie, gdy tmux działa w innym terminalu, można zrobić to INFO=$(tmux new-window -P notepad)po tmux kill-window -t $INFO.
Johann
69

Dla mnie rozwiązanie wygląda następująco:

  1. ctrl+b q aby wyświetlić numery okien.
  2. ctrl+b x zabić szybę.

Zabicie ostatniego panelu zabije okno.

Nikolay Fominyh
źródło
2
Jest to najlepsze rozwiązanie, gdy właśnie ukończyłeś proces w oknie tmux.
Philip Kirkbride,
1
Killing last pane will kill window. Nie działa dla mnie? Używam Mac
Andy Aldo
tak, myślę, że to najlepsze rozwiązanie, zawsze i zawsze.
Rachunek
33

Jeśli chcesz to zrobić tylko raz, bez dodawania skrótu, zawsze możesz pisać

<prefix> 
:
kill-window
<enter>
gatoatigrado
źródło
10

Podczas gdy pytałeś, jak zabić okno lub. panel , często nie chciałbym go zabijać, ale po prostu przywrócić go do stanu roboczego (układ paneli jest dla mnie ważny, zabicie panelu niszczy go, więc muszę go odtworzyć); tmux udostępnia następujące respawnpolecenia: respawn-paneresp. respawn-window. Tylko ludzie tacy jak ja mogą znaleźć to rozwiązanie tutaj.

Tom Regner
źródło
9

Jest wiele różnych sposobów, aby to zrobić, ale moim ulubionym jest po prostu wpisywanie „exit” w wierszu polecenia bash.

smp
źródło
3
Zakłada się, że bash działa w oknie. Okno, które chciałem zabić, które doprowadziło mnie do tej strony, to lista poleceń tmux - które nie mają powłoki do wyjścia.
Michael Campbell
1
Jeśli patrzysz na listę poleceń wyświetlaną przez <prefiks> + ?, możesz to zrobić, naciskając q lub <RET>.
Scott Centoni
8

ctrl + d zabija okno w terminalu Linux, działa również w tmux.

To takie podejście.

pingioli
źródło
2
Pamiętaj, że ten skrót oznacza po prostu „koniec danych”. Działa tylko wtedy, gdy aktualnie uruchomiony proces w panelu tmux zaakceptuje ten sygnał i zakończy się po otrzymaniu (np. Tak jak bash). Ponieważ w okienku nie ma żadnego procesu, zostaje zamknięty przez tmux. Nie działa we wszystkich przypadkach.
nyi
tego właśnie szukałem.
thedanotto
1
Jest to OK, jeśli w oknie jest uruchomiona powłoka, ale jeśli jest tylko zamrożona aplikacja, potrzeba czegoś bardziej brutalnego. Odpowiedź Nikolaya Fominyha działa dobrze.
oz1cz
To tylko zabija szybę, a nie okno.
StevieD
1

Domyślnie
<Prefix>& za zabicie okna
<Prefix>x za zabicie panelu
I możesz dodać informacje o konfiguracji

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

następnie
<Prefix>X za zabicie sesji

DinoStray
źródło