Sử dụng tmux với cả emacs và vim


16

Liên kết khóa mặc định tốt nhất cho tmux là gì và tại sao nếu đôi khi sử dụng emacs và đôi khi sử dụng vim (trên Linux Mint 12)? Ctrl-b là OK, nhưng điều đó mâu thuẫn một chút với bash shell và emacs.


Một trong đó có ý nghĩa với bạn. Tât nhiên?
Ярослав Рахматуллин

Câu trả lời:


9

Tôi đã tìm thấy một câu trả lời hay trong một bài liên quan: Chuỗi tiền tố / thoát ít xung đột nhất cho màn hình hoặc tmux là gì?

Và tôi đã đi với Ctrl- \. Dưới đây là ~ / .tmux-conf của tôi:

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-\

Điều này không hoạt động ra khỏi hộp cho Mac. Tôi đã quay lại Ctrl-a và chuyển sang các ràng buộc vim và chế độ tà ác cho emacs, vì vậy tôi không nhấn ctrl-a nữa để bắt đầu dòng.
justingordon

4

Tôi đặc biệt thích C-], không xung đột với các ràng buộc vi và xung đột với abort-recursive-editràng buộc mặc định trong Emacs. Tôi hiếm khi sử dụng nó, và trong những trường hợp đủ khó chịu, việc gõ nó hai lần không phải là một bộ phim lớn.


1

Tôi đã sử dụng Ctrl- / trong một thời gian và không tìm thấy xung đột với bất cứ điều gì ít nhất là trong vim / bash. Tôi không sử dụng emacs vì vậy tôi không biết nếu nó xung đột với bất cứ điều gì quan trọng trong đó.

Ngoài ra một lưu ý nhỏ tôi tin rằng tôi đã phải liên kết nó với C-_ để làm cho nó hoạt động vì đó là khóa thực tế mà nó gửi.


C- \ và C-_ chắc chắn là những nhân vật khác nhau; tương ứng, chúng là Bộ phân tách tệp 0x1C và Bộ phân tách đơn vị 0x1C. Xem bảng trong các ký tự điều khiển ASCII của Wikipedia .
Chris Johnsen

1

Tôi đã chọn Ctrl + Alt + b, tức là

unbind C-b
set -g prefix M-C-b

1

Tôi sử dụng C- \. Lưu ý rằng bạn cần phải thoát nó bằng dấu ngoặc đơn:

unbind-key C-b
set-option -g prefix C-'\'

Lưu ý, điều này mâu thuẫn với phím tắt biểu thức đánh giá của vim.
mahdix

0

Giải pháp tốt nhất tôi gặp phải cho việc này là chỉ sử dụng `. Nơi duy nhất gây ra sự cố cho tôi là dán mã trực tiếp (với bộ đệm hệ thống), nếu không đó là giải pháp hoàn hảo.

set -g prefix `
bind-key ` send-prefix

0

Một ý tưởng tốt là đi cho M-F3. Nó không xung đột với emacs và vi, combinaison khá thuận tiện, vì nó khá gần với M-F2 và M-F1 được sử dụng cho lệnh chạy và menu virtualdesktops.

[Tôi đang sử dụng emacs và bắt đầu một số vim (bên trong emacs bây giờ) và sử dụng quế linuxMint cho bản phân phối]

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.