Como finalizar uma janela no tmux?

213

Como finalizar uma janela no tmux? Como o Ctrlakatalho na tela por Ctrlaser o prefixo.

Dmitry
fonte
2
Por que você estava pesquisando no Google? Se eu procurar o título da sua pergunta, este é o principal hit. Tem uma lista útil de atalhos (incluindo a identificada por cnicutar abaixo)
Geoff
29
Bem, agora essa questão em si é o top hit no google ...
jottr

Respostas:

43

A resposta de Kent respondeu totalmente à sua pergunta, no entanto, se você deseja alterar a configuração do tmux para ser semelhante ao GNU Screen, aqui está um tmux.conf que eu usei para fazer isso:

# 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
fonte
Isso é muito detalhado e não indica onde a pergunta é respondida
rodorgas
312

tente Prefix+&

se você tem

bind q killp

no seu .tmux.conf, você pode pressionar Prefix+ qpara matar a janela também, apenas se houver apenas um painel nessa janela.

o padrão do prefixo acima é Ctrl + b; portanto , para finalizar a janela por padrão, você pode usarCtrl +b &

Kent
fonte
5
Isso funciona bem: Ctrl+b &observe que você precisa confirmar ypara realmente matar a janela atual incluindo todos os painéis dessa janela. Você será colocado dentro da janela que usou antes.
rubo77
1
É importante notar que, por padrão, Prefix+ qmostra o número do painel, portanto, a atribuição killpa essa combinação substituirá esse atalho.
KMO
106

<Prefix> & por matar uma janela

<Prefix> x por matar um painel

Se houver apenas um painel (ou seja, a janela não estiver dividida em vários painéis, <Prefix> xisso mataria a janela)

Como sempre iterado, <Prefix>é geralmente CTRL+b. (Acho que para perguntas de iniciantes, podemos dizer CTRL+bo tempo todo, e não falar sobre prefixo, mas de qualquer maneira :))

Rushi Agrawal
fonte
Não consegui matar apenas o painel com <prefixo> x, apenas com <prefixo>: e digitando respawn-pane -k.
Pablo A
87

Geralmente:

tmux kill-window -t window-number

Por exemplo, se você está na janela 1 e deseja matar a janela 9:

tmux kill-window -t 9
Gary
fonte
2
Este. (A propósito, muito obrigado!) Se feito remotamente onde o tmux está sendo executado em algum outro terminal, pode-se fazer o INFO=$(tmux new-window -P notepad)seguinte tmux kill-window -t $INFO.
Johann
69

Para mim, a solução se parece com:

  1. ctrl+b q para mostrar os números do painel.
  2. ctrl+b x matar painel.

Matar o último painel mata a janela.

Nikolay Fominyh
fonte
2
Esta é a melhor solução quando você termina um processo dentro de uma janela do tmux.
Philip Kirkbride
1
Killing last pane will kill window. Nao funciona para mim? Estou usando mac
Andy Aldo
Sim, acho que esta é a melhor solução de todos os tempos.
Cálculo
33

Se você quiser fazer apenas uma vez, sem adicionar um atalho, sempre poderá digitar

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

Enquanto você perguntou como matar uma janela resp. painel , muitas vezes eu não gostaria de matá-lo, mas simplesmente recuperá-lo para um estado de funcionamento (o layout dos painéis é importante para mim, matar um painel destrói-o e, portanto, preciso recriá-lo); O tmux fornece os respawncomandos para esse efeito: respawn-paneresp. respawn-window. Só que pessoas como eu podem encontrar esta solução aqui.

Tom Regner
fonte
9

Muitas maneiras diferentes de fazer isso, mas o meu favorito é simplesmente digitar 'exit' no prompt do bash.

smp
fonte
3
Isso pressupõe que o bash esteja sendo executado na janela. A janela que eu queria matar que me levou a esta página é a lista de comandos do tmux - que não possui shell para sair.
Michael Campbell
1
Se você estava visualizando a lista de comandos exibidos por <prefixo> +?, Pode deixar isso pressionando q ou <RET>.
Scott Centoni
8

ctrl + d mata uma janela no terminal linux, também funciona no tmux.

Esse é um tipo de abordagem.

pingsoli
fonte
2
Observe que esse atalho significa apenas "fim dos dados". Ele funciona apenas se o processo atualmente em execução no painel tmux aceitar esse sinal e terminar após recebê-lo (por exemplo, como o bash). Como não há processo no painel, ele é fechado pelo tmux. Não funciona em todos os casos.
26418 nyi
isto é o que eu estava procurando.
Thedanotto
1
Tudo bem se houver um shell em execução na janela, mas se houver apenas um aplicativo congelado, será necessário algo mais brutal. A resposta de Nikolay Fominyh funciona bem.
oz1cz
Isso mata apenas um painel, não uma janela.
StevieD
1

Por padrão
<Prefix>& para matar uma janela
<Prefix>x para matar um painel
E você pode adicionar informações de configuração

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

então
<Prefix>X por matar uma sessão

DinoStray
fonte