Vim × tmuxの画面移動
tmuxでpane分割してVimを開いて作業しているとき,Vim内でもウィンドウ分割をすると画面内の移動が大変ややこしいことになる.
面倒なのでVimとかtmuxとか気にせずに 同じキーバインドで画面の移動をしたい.
Vim Tmux Navigator
Vim Tmux Navigatorを使うと捗る.
Vim・tmuxを気にせず以下の様なキーバインドで画面を移動できる.
C-h
: 左に移動C-j
: 下に移動C-k
: 上に移動C-l
: 右に移動
導入
Vim側
NeoBundleだとこんな感じ.
.vimrc
NeoBundle 'christoomey/vim-tmux-navigator'
tmux側
.tmux.conf
に以下を追記する.快適!٩(๑❛ᴗ❛๑)۶
.tmux.conf
# Smart pane switching with awareness of vim splitsbind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-h) || tmux select-pane -L"bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys C-l) || tmux select-pane -R"bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)g?(view|n?vim?)(diff)?$' && tmux send-keys 'C-\\') || tmux select-pane -l"
設定
公式のrepositoryを参照.
キーバインドを変更したり色々できる.