Como finalizar uma janela no tmux?


213

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


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

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 &


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 :))


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

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.


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>

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.


9

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


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.


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.