Bagaimana cara menghentikan jendela di tmux?


214

Bagaimana cara menghentikan jendela di tmux? Seperti Ctrlakpintasan di layar dengan Ctrlamenjadi awalan.


2
Untuk apa Google? Jika saya mencari judul pertanyaan Anda, ini adalah hit teratas. Memiliki daftar cara pintas yang berguna (termasuk yang diidentifikasi oleh cnicutar di bawah ini)
Geoff

29
Nah, sekarang pertanyaan ini sendiri adalah hit teratas di google ...
jottr

Jawaban:


43

Tanggapan Kent sepenuhnya menjawab pertanyaan Anda, namun jika Anda ingin mengubah konfigurasi tmux agar mirip dengan Layar GNU, inilah tmux.conf yang telah saya gunakan untuk menyelesaikan ini:

# 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

Ini terlalu bertele-tele dan tidak menunjukkan di mana pertanyaan dijawab
rodorgas

313

mencoba Prefix +&

jika Anda memiliki

bind q killp

di Anda .tmux.conf, Anda dapat menekan Prefix+q untuk mematikan jendela juga, hanya jika hanya ada satu panel di jendela itu.

default Awalan di atas adalah Ctrl + b, jadi untuk mengakhiri jendela secara default Anda dapat menggunakan Ctrl +b &


5
Ini berfungsi dengan baik :, Ctrl+b &perhatikan, bahwa Anda harus mengkonfirmasi dengan ybenar-benar membunuh jendela saat ini termasuk semua panel di jendela itu. Anda akan ditempatkan di dalam jendela yang Anda gunakan sebelumnya sebelum itu.
rubo77

1
Perlu dicatat bahwa secara default Prefix+ qmenampilkan nomor panel, jadi menetapkan killpkombinasi ini akan menggantikan pintasan ini.
kmo

106

<Prefix> & untuk membunuh jendela

<Prefix> x untuk membunuh sebuah panel

Jika hanya ada satu panel (yaitu jendela tidak dibagi menjadi beberapa panel, <Prefix> x akan mematikan jendela)

Seperti yang selalu diulang, <Prefix>umumnya CTRL+b. (Saya pikir untuk pertanyaan pemula, kita hanya bisa mengatakan CTRL+bsepanjang waktu, dan tidak berbicara tentang awalan sama sekali, tapi toh :))


Saya tidak bisa membunuh hanya panel dengan <prefix> x, hanya dengan <prefix>:, lalu mengetik respawn-pane -k.
Pablo A

87

Umumnya:

tmux kill-window -t window-number

Jadi misalnya, jika Anda berada di jendela 1 dan Anda ingin membunuh jendela 9:

tmux kill-window -t 9

2
Ini. (Ngomong-ngomong, terima kasih banyak!) Jika dilakukan secara jarak jauh di mana tmux berjalan di beberapa terminal lain, seseorang dapat melakukannya INFO=$(tmux new-window -P notepad)dengan diikuti tmux kill-window -t $INFO.
Johann

70

Bagi saya solusinya terlihat seperti:

  1. ctrl+b q untuk menampilkan nomor panel.
  2. ctrl+b x untuk membunuh panel.

Membunuh jendela terakhir akan membunuh jendela.


2
Ini adalah solusi terbaik ketika Anda baru saja menyelesaikan proses di dalam jendela tmux.
Philip Kirkbride

1
Killing last pane will kill window. Tidak bekerja untuk saya? Saya menggunakan mac
Andy Aldo

ya, saya pikir ini adalah solusi terbaik yang pernah ada.
Kalkulus

33

Jika Anda hanya ingin melakukannya sekali, tanpa menambahkan pintasan, Anda selalu bisa mengetik

<prefix> 
:
kill-window
<enter>

10

Sementara Anda bertanya bagaimana cara membunuh window resp. panel , saya sering tidak ingin membunuhnya tetapi hanya untuk mengembalikannya ke kondisi kerja (tata letak panel penting bagi saya, membunuh panel menghancurkannya jadi saya harus membuatnya kembali); tmux menyediakan respawnperintah untuk efek itu: respawn-paneresp. respawn-window. Hanya saja orang-orang seperti saya dapat menemukan solusi ini di sini.


9

Banyak cara yang berbeda untuk melakukan ini, tetapi favorit saya hanya mengetik 'keluar' pada bash prompt.


3
Ini mengira bash sedang berjalan di jendela. Jendela yang ingin saya bunuh yang mengarahkan saya ke halaman ini adalah daftar perintah tmux - yang tidak memiliki shell untuk keluar.
Michael Campbell

1
Jika Anda melihat daftar perintah yang ditampilkan oleh <prefix> + ?, Anda dapat meninggalkannya dengan menekan q atau <RET>.
Scott Centoni

8

ctrl + d membunuh jendela di terminal linux, juga berfungsi di tmux.

Ini semacam pendekatan.


2
Perhatikan bahwa pintasan ini hanya berarti "akhir data". Ini hanya bekerja jika proses yang sedang berjalan di panel tmux menerima sinyal ini dan berakhir sendiri setelah menerimanya (misalnya seperti halnya bash). Karena tidak ada proses di dalam panel, itu akan ditutup oleh tmux. Tidak berfungsi dalam semua kasus.
nyi

inilah yang saya cari.
thedanotto

1
Ini OK jika ada shell yang berjalan di jendela, tetapi jika hanya ada aplikasi beku, sesuatu yang lebih brutal diperlukan. Jawaban Nikolay Fominyh bekerja dengan baik.
oz1cz

Ini hanya membunuh panel, bukan jendela.
StevieD

1

Secara default
<Prefix>& untuk mematikan jendela
<Prefix>x karena membunuh panel
Dan Anda dapat menambahkan info konfigurasi

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

lalu
<Prefix>X karena membunuh satu sesi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.