Использование tmux с emacs и vim

Использование tmux с emacs и vim

Какая комбинация клавиш по умолчанию является лучшей для tmux и почему, если иногда используется emacs, а иногда vim (в Linux Mint 12)? Ctrl-b — это нормально, но это немного конфликтует с оболочкой bash и emacs.

решение1

Я нашел хороший ответ в похожем посте:Какая префиксная/escape-последовательность для screen или tmux наименее конфликтующая?

И я пошел с Ctrl-\. Ниже мой ~/.tmux-conf:

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

решение2

Я решительно предпочитаю C-], который не конфликтует с привязками vi и конфликтует с abort-recursive-editпривязкой по умолчанию в Emacs. Я использую его достаточно редко и в достаточно неприятных обстоятельствах, так что ввод его дважды не является большой драмой.

решение3

Я уже некоторое время использую Ctrl-/ и не обнаружил конфликта ни с чем, по крайней мере в vim/bash. Я не использую emacs, поэтому не знаю, конфликтует ли он с чем-то важным в нем.

Также небольшое замечание. Я думаю, что мне пришлось привязать его к C-_, чтобы он заработал, поскольку это фактический ключ, который он отправляет.

решение4

Я использую C-\. Обратите внимание, что вам нужно экранировать его одинарными кавычками:

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

Связанный контент