Menggunakan tmux dengan emacs dan vim

16

Apa pengikatan kunci default terbaik untuk tmux dan mengapa jika seseorang terkadang menggunakan emacs dan terkadang menggunakan vim (di Linux Mint 12)? Ctrl-b tidak apa-apa, tapi itu sedikit konflik dengan bash shell dan emacs.

justingordon
sumber
Salah satu yang masuk akal bagi Anda. Duh?
Ярослав Рахматуллин

Jawaban:

9

Saya menemukan jawaban yang baik dalam posting terkait: Apa urutan awalan / melarikan diri yang paling tidak bertentangan untuk layar atau tmux?

Dan saya telah pergi dengan Ctrl- \. Di bawah ini adalah ~ / .tmux-conf saya:

set-window-option -g mode-keys vi
set-window-option -g window-status-current-bg blue
set-window-option -g automatic-rename on
set-option -g status-keys vi
set-option -g history-limit 100000
set-option -g base-index 1
set-option -s escape-time 0
setw -g mode-mouse on
set-option -g mouse-select-pane on

# We won't worry about sending C-\ to any programs
# bind-key C-\ send-prefix

# hit C-\ twice to go to last window
bind-key C-\ last-window
bind-key b set-option status

bind-key / command-prompt "split-window 'exec man %%'"
# vim's definition of a horizontal/vertical split is reversed from tmux's
bind s split-window -v
bind v split-window -h

# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# resize panes like vim
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10

# C-b is not acceptable, due to emacs, bash, and vim
unbind-key C-b
set-option -g prefix C-\
justingordon
sumber
Ini tidak berfungsi di luar kotak untuk Mac. Saya kembali ke Ctrl-a, dan beralih ke binding vim dan mode jahat untuk emacs, jadi saya tidak menekan ctrl-a lagi untuk memulai baris.
justingordon
4

Saya lebih suka C-], yang tidak bertentangan dengan vi binding, dan konflik dengan abort-recursive-editbinding default di Emacs. Saya menggunakan itu cukup jarang, dan dalam keadaan yang cukup buruk, mengetiknya dua kali bukanlah sebuah drama besar.

Daniel Pittman
sumber
1

Saya telah menggunakan Ctrl- / untuk sementara waktu dan belum menemukan konflik dengan apa pun setidaknya dalam vim / bash. Saya tidak menggunakan emacs jadi saya tidak tahu apakah itu bertentangan dengan sesuatu yang penting di dalamnya.

Juga catatan kecil yang saya percaya saya harus mengikatnya ke C-_ untuk membuatnya bekerja karena itulah kunci yang sebenarnya dikirimkannya.

Neg_EV
sumber
C- \ dan C-_ jelas merupakan karakter yang berbeda; masing-masing, mereka adalah 0x1C "Pemisah File" dan 0x1F "Pemisah Unit". Lihat tabel dalam karakter kontrol ASCII Wikipedia .
Chris Johnsen
1

Saya memilih Ctrl + Alt + b, yaitu

unbind C-b
set -g prefix M-C-b
Andrew
sumber
1

Saya menggunakan C- \. Perhatikan bahwa Anda perlu menghindarinya dengan tanda kutip tunggal:

unbind-key C-b
set-option -g prefix C-'\'
mahdix
sumber
Sebagai catatan, ini bertentangan dengan kunci pintas ekspresi ekspresi evaluasi vim.
mahdix
0

Solusi terbaik yang saya temui untuk ini adalah dengan menggunakan `. Satu-satunya tempat yang menyebabkan masalah bagi saya adalah menempelkan kode secara langsung (dengan buffer sistem), jika tidak itu adalah solusi yang sempurna.

set -g prefix `
bind-key ` send-prefix
huntar
sumber
0

Gagasan bagus lainnya adalah memilih M-F3. Itu tidak bertentangan dengan emacs dan vi, kombinasi lebih mudah, apakah itu agak tertutup untuk M-F2 dan M-F1 yang digunakan untuk menjalankan perintah dan menu virtualdesktops.

[Saya menggunakan emacs, dan memulai beberapa vim (di dalam emacs untuk saat ini) dan menggunakan linuxMint cinnamon untuk distro]

AdrieanKhisbe
sumber