tmux 的最佳默认键绑定是什么,为什么有时使用 emacs,有时使用 vim(在 Linux Mint 12 上)?Ctrl-b 可以,但这与 bash shell 和 emacs 有点冲突。
答案1
我在相关文章中找到了一个很好的答案:屏幕或 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-'\'