Làm thế nào để chấm dứt một cửa sổ trong tmux?


213

Làm thế nào để chấm dứt một cửa sổ trong tmux? Giống như các Ctrlakphím tắt trong màn hình với Ctrlatiền tố.


2
Bạn đang googling để làm gì? Nếu tôi tìm kiếm tiêu đề câu hỏi của bạn, đây là hit hàng đầu. Có một danh sách các phím tắt hữu ích (bao gồm một phím tắt được xác định bởi cnicutar bên dưới)
Geoff

29
Chà, bây giờ câu hỏi này là câu hỏi hàng đầu trên google ...
jottr

Câu trả lời:


43

Câu trả lời của Kent đã trả lời đầy đủ câu hỏi của bạn, tuy nhiên nếu bạn đang muốn thay đổi cấu hình của tmux tương tự như Màn hình GNU, thì đây là một tmux.conf mà tôi đã sử dụng để thực hiện điều này:

# 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

Điều này quá dài dòng và không cho biết câu hỏi được trả lời ở đâu
Rodorgas

312

thử Prefix+&

nếu bạn có

bind q killp

trong của bạn .tmux.conf, bạn cũng có thể nhấn Prefix+ qđể tắt cửa sổ, chỉ khi chỉ có một bảng trong cửa sổ đó.

mặc định của Tiền tố ở trên là Ctrl + b, vì vậy để chấm dứt cửa sổ theo mặc định, bạn có thể sử dụng Ctrl +b &


5
Điều này hoạt động tốt : Ctrl+b &, lưu ý, rằng bạn phải xác nhận yđể thực sự tiêu diệt cửa sổ hiện tại bao gồm tất cả các ô trong cửa sổ đó. Bạn sẽ được đặt bên trong cửa sổ mà bạn đã sử dụng trước đó.
rubo77

1
Điều đáng chú ý là theo mặc định Prefix+ qhiển thị số khung, vì vậy việc gán killpcho kết hợp này sẽ ghi đè phím tắt này.
kmo

106

<Prefix> & vì đã giết một cửa sổ

<Prefix> x vì đã giết một người

Nếu chỉ có một khung (tức là cửa sổ không được chia thành nhiều ô, <Prefix> xsẽ giết chết cửa sổ)

Như mọi khi lặp đi lặp lại, <Prefix>nói chung là CTRL+b. (Tôi nghĩ đối với các câu hỏi dành cho người mới bắt đầu, chúng ta chỉ có thể nói CTRL+bmọi lúc, và không nói gì về tiền tố cả, nhưng dù sao đi nữa :))


Tôi không thể giết chỉ khung với <tiền tố> x, chỉ với <tiền tố> :, sau đó nhập respawn-pane -k.
Pablo A

87

Nói chung là:

tmux kill-window -t window-number

Vì vậy, ví dụ, nếu bạn ở cửa sổ 1 và bạn muốn giết cửa sổ 9:

tmux kill-window -t 9

2
Điều này. (Nhân tiện, cảm ơn bạn rất nhiều!) Nếu được thực hiện từ xa nơi tmux đang chạy trong một số thiết bị đầu cuối khác, người ta có thể làm INFO=$(tmux new-window -P notepad)theo sau tmux kill-window -t $INFO.
Johann

69

Đối với tôi giải pháp giống như:

  1. ctrl+b q để hiển thị số khung.
  2. ctrl+b x để giết khung.

Giết ô cuối cùng sẽ giết cửa sổ.


2
Đây là giải pháp tốt nhất khi bạn vừa hoàn thành một quy trình bên trong cửa sổ tmux.
Philip Kirkbride

1
Killing last pane will kill window. Không làm việc cho tôi? Tôi đang sử dụng mac
Andy Aldo

vâng, tôi nghĩ rằng đây là giải pháp tốt nhất, mãi mãi.
Giải tích

33

Nếu bạn chỉ muốn làm một lần mà không cần thêm phím tắt, bạn luôn có thể nhập

<prefix> 
:
kill-window
<enter>

10

Trong khi bạn hỏi làm thế nào để giết một cửa sổ tôn trọng. khung , tôi thường không muốn giết nó mà chỉ đơn giản là đưa nó trở lại trạng thái hoạt động (cách bố trí các tấm có tầm quan trọng đối với tôi, giết một khung phá hủy nó để tôi phải tạo lại nó); tmux cung cấp các respawnlệnh cho hiệu ứng đó: respawn-paneresp. respawn-window. Chỉ là những người như tôi có thể tìm thấy giải pháp này ở đây.


9

Rất nhiều cách khác nhau để làm điều này, nhưng yêu thích của tôi chỉ đơn giản là gõ 'exit' trên dấu nhắc bash.


3
Điều này giả định bash đang chạy trong cửa sổ. Cửa sổ tôi muốn giết dẫn tôi đến trang này là danh sách các lệnh tmux - không có shell để thoát.
Michael Campbell

1
Nếu bạn đang xem danh sách các lệnh được hiển thị bởi <tiền tố> +?, Bạn có thể rời khỏi đó bằng cách nhấn q hoặc <RET>.
Scott Centoni

8

ctrl + d Giết một cửa sổ trong thiết bị đầu cuối linux, cũng hoạt động trong tmux.

Đây là một cách tiếp cận.


2
Lưu ý rằng phím tắt này chỉ có nghĩa là "kết thúc dữ liệu". Nó chỉ hoạt động nếu quá trình hiện đang chạy trong khung tmux chấp nhận tín hiệu này và tự chấm dứt khi nhận được nó (ví dụ như bash hiện). Bởi vì không có quá trình xung quanh trong khung, nó bị đóng bởi tmux. Không hoạt động trong mọi trường hợp.
nyi

đây là wat tôi đang tìm kiếm
thedanotto

1
Điều này là ổn nếu có một vỏ đang chạy trong cửa sổ, nhưng nếu chỉ có một ứng dụng bị đóng băng, thì cần một cái gì đó tàn bạo hơn. Câu trả lời của Nikolay Fominyh hoạt động tốt.
oz1cz

Điều này chỉ giết chết một khung, không phải là một cửa sổ.
StevieD

1

Theo mặc định
<Prefix>và để giết một cửa sổ
<Prefix>x để giết một cửa sổ
Và bạn có thể thêm thông tin cấu hình

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

sau đó
<Prefix>X để giết một phiên

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.