From 50df4379e1200b509e6261118ff0af289870c217 Mon Sep 17 00:00:00 2001 From: Max Bucknell Date: Sat, 9 May 2015 15:33:54 +0100 Subject: [PATCH] Add better navigation --- script/bootstrap.sh | 1 + tmux/tmux.conf.symlink | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/script/bootstrap.sh b/script/bootstrap.sh index 861dcad..4c2b77c 100755 --- a/script/bootstrap.sh +++ b/script/bootstrap.sh @@ -128,6 +128,7 @@ install_vim_plugins () { "pangloss/vim-javascript" "JulesWang/css.vim" "genoma/vim-less" + "christoomey/vim-tmux-navigator" ) local BASE_DIR="$DOTFILES_ROOT/vim/vim.symlink/bundle" local GIT_HOST="git@github.com" diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 1d3be3d..b2b4e08 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,9 +1,15 @@ # remap prefix to Control + a set -g prefix C-a -unbind C-b -bind C-a send-prefix -# quick pane cycling -unbind ^A -bind ^A select-pane -t :.+ +# smart pane switching with awareness of vim splits +# +# See: https://robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits +bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L" +bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D" +bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U" +bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R" +bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\\') || tmux select-pane -l" +# easily toggle synchronization (mnemonic: e is for echo) +bind e setw synchronize-panes on +bind E setw synchronize-panes off