如何在tmux中终止窗口?


213

如何在tmux中终止窗口?就像屏幕上Ctrlak快捷方式一样,它是前缀。Ctrla


2
您在搜索什么?如果我搜索您的问题标题,这将是热门。有一个有用的快捷方式列表(包括下面的cnicutar标识的快捷方式)
Geoff

29
好吧,现在这个问题本身就是Google上的热门话题
jottr 2014年

Answers:


43

Kent的回答完全回答了您的问题,但是,如果您希望将tmux的配置更改为与GNU Screen类似,请使用以下tmux.conf来完成此操作:

# 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

这太冗长,并不能说明问题的答案
Rodorgas

312

尝试 Prefix+&

如果你有

bind q killp

在您的中.tmux.conf,也可以按Prefix+ q杀死窗口,前提是该窗口只有一个面板。

上面的Prefix默认为 Ctrl + b因此要默认终止窗口,您可以使用 Ctrl +b &


5
可以正常工作:Ctrl+b &,请注意,您必须确认y才能真正终止当前窗口,包括该窗口中的所有窗格。您将被放置在此之前最后使用的窗口内。
rubo77'9

1
值得注意的是,默认情况下Prefix+ q显示窗格号,因此分配killp给此组合将覆盖此快捷方式。
kmo

106

<Prefix> & 杀死窗户

<Prefix> x 杀死一块玻璃

如果只有一个窗格(即,窗口未拆分为多个窗格,<Prefix> x则会杀死该窗口)

与往常一样,<Prefix>通常是CTRL+b。(我认为对于初学者的问题,我们只能一直说CTRL+b,根本不谈论前缀,但是:))


我不能仅使用<prefix> x杀死窗格,而不能使用<prefix>:杀死窗格,然后键入respawn-pane -k
Pablo A

87

通常:

tmux kill-window -t window-number

因此,例如,如果您在窗口1中并且要杀死窗口9:

tmux kill-window -t 9

2
这个。(谢谢你这么多的方式!)如果完成远程其中TMUX在一些其他终端上运行,可以做INFO=$(tmux new-window -P notepad)后面tmux kill-window -t $INFO
约翰


33

如果您只想执行一次,而无需添加快捷方式,则可以随时输入

<prefix> 
:
kill-window
<enter>

10

当您问到如何杀死一个窗口时。窗格,我通常不想杀死它,而只是想使其恢复工作状态(窗格的布局对我很重要,杀死窗格会破坏它,因此我必须重新创建它);tmux提供了实现此目的的respawn命令:respawn-paneresp。respawn-window。就像我这样的人可能会在这里找到此解决方案。


9

有很多不同的方法可以做到这一点,但是我最喜欢的只是在bash提示符下键入'exit'。


3
假定bash正在窗口中运行。我想要杀死的窗口导致我进入此页面是tmux命令的列表-没有外壳可以退出。
Michael Campbell

1
如果您正在查看<prefix> +?显示的命令列表,则可以按q或<RET>保留该列表。
Scott Centoni 2014年

8

ctrl + d 在Linux终端中杀死一个窗口,在tmux中也起作用。

这是一种方法。


2
请注意,此快捷方式仅表示“数据结束”。仅当tmux窗格中当前正在运行的进程接受该信号并在接收到该信号时终止自身时(例如bash这样做),它才起作用。由于窗格中没有进程,因此它会被tmux关闭。并非在所有情况下都有效。
nyi

这是我一直在寻找的水。
thedanotto

1
如果窗口中有正在运行的外壳,这是可以的,但是如果只有冻结的应用程序,则需要更残酷的东西。Nikolay Fominyh的答案很好。
oz1cz

这只会杀死一个窗格,而不是一个窗口。
StevieD

1

默认情况下
<Prefix>&杀死一个窗口
<Prefix>x杀死一个窗格
您可以添加配置信息

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

然后是
<Prefix>X,因为它杀死了一个会话

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.