What is the best default key binding for tmux and why if one sometimes uses emacs and sometimes uses vim (on Linux Mint 12)? Ctrl-b is OK, but that conflicts a bit with the bash shell and emacs.
I found a good answer in a related post: What's the least conflicting prefix/escape sequence for screen or tmux?
And I've gone with Ctrl-\. Below is my ~/.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-\
I strongly prefer
C-], which doesn't conflict with vi bindings, and conflicts with the default
abort-recursive-edit binding in Emacs. I use that rarely enough, and in nasty enough circumstances, that typing it twice isn't a big drama.
I have been using Ctrl-/ for a while and haven't found to conflict with anything at least in vim/bash. I don't use emacs so I don't know if it conflicts with anything important in it.
Also a small note I believe I had to bind it to C-_ to get it to work since that is the actual key it sends.
I chose Ctrl+Alt+b, i.e.
unbind C-b set -g prefix M-C-b
I use C-\. Note that you need to escape it with single quotes:
unbind-key C-b set-option -g prefix C-'\'
The best solution I've come across for this is using just `. The only place this causes me problems is pasting in code directly (with system buffers), otherwise it's the perfect solution.
set -g prefix ` bind-key ` send-prefix
Another good idea is to go for
It doesn't conflict with emacs and vi, the combinaison is rather convenient, is it' rather closed to the M-F2 and M-F1 used for run command and virtualdesktops menu.
[I'm using emacs, and starting some vim (inside emacs for now) and using linuxMint cinnamon for distro]