################################################################################
# Up and down like Vim.
bind j select-pane -D
-bind C-j select-pane -D
+bind -r C-j select-pane -D
bind k select-pane -U
-bind C-k select-pane -U
+bind -r C-k select-pane -U
+# Don't let arrow keys repeat.
+bind Up select-pane -U
+bind Down select-pane -D
+bind Left select-pane -L
+bind Right select-pane -R
# Previous and next panes kinda like Vim.
bind h select-pane -L
-bind C-h select-pane -L
+bind -r C-h select-pane -L
bind l select-pane -R
-bind C-l select-pane -R
+bind -r C-l select-pane -R
# And for windows.
-bind H previous-window
-bind L next-window
+bind -r H previous-window
+bind -r L next-window
# Last window like Vim.
bind ^ last-window
bind C-^ last-pane
bind K select-pane -U
# Swap panes.
bind o swap-pane -D
-bind C-o swap-pane -D
-bind O swap-pane -U
+bind -r C-o swap-pane -D
+bind -r O swap-pane -U
bind w command-prompt -p "Select [<window>.]<pane> to swap:" 'swap-pane -s . -t %1'
# Swap windows.
bind W choose-window "swap-window -t '%%'"
bind C-\ split-window -v
# Next pane.
bind i select-pane -t :.+
-bind C-i select-pane -t :.+
-bind I select-pane -t :.-
+bind -r C-i select-pane -t :.+
+bind -r I select-pane -t :.-
+# Resize pane.
+bind -r C-M-h resize-pane -L
+bind -r C-M-j resize-pane -D
+bind -r C-M-k resize-pane -U
+bind -r C-M-l resize-pane -R
# Layouts.
bind . select-layout even-vertical
bind , select-layout tiled
+bind -r Space next-layout
# Simulate maximising the window.
bind / select-layout even-vertical \; swap-pane -s top \; resize-pane -D 9999
# Select windows.
# XXX: As of tmux 1.3 this doesn't work.
#bind '"' choose-buffer 'show-buffer -b %%'
bind '"' list-buffers \; command-prompt -p "Choose buffer to show:" 'show-buffer -b %1'
-bind "'" show-buffer
+bind "'" new-window -n "[buffer]" "cat > /dev/null" \; paste-buffer
# Toggle mouse mode as it is useful despite the flaws listed above.
bind C-m set -g mouse-resize-pane \; set -g mouse-select-pane \; set -g mouse-select-window \; set -g mode-mouse