Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
One that makes sense to you. Duh? – Ярослав Рахматуллин Sep 24 '15 at 4:13
up vote 7 down vote accepted

I found a good answer in a related post: What's the best 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-\
share|improve this answer
This doesn't work out of the box for Mac. I went back to Ctrl-a, and switched to vim bindings and evil-mode for emacs, so I don't hit ctrl-a anymore for beginning of line. – justingordon Jan 23 '13 at 5:57

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.

share|improve this answer

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.

share|improve this answer
C-\ and C-_ are definitely different characters; respectively, they are 0x1C “File Separator” and 0x1F “Unit Separator”. See the table in Wikipedia’s ASCII control characters. – Chris Johnsen Jan 26 '12 at 3:26

I chose Ctrl+Alt+b, i.e.

unbind C-b
set -g prefix M-C-b
share|improve this answer

I use C-\. Note that you need to escape it with single quotes:

unbind-key C-b
set-option -g prefix C-'\'
share|improve this answer
As a note, this conflicts with vim's evaluate expression shortcut key. – mahdix Sep 30 '15 at 9:18

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
share|improve this answer

Another good idea is to go for M-F3. 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]

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .