tmux & vim で <C-h>にキーバインドする
iTerm2 v3 & vimで<C-h>にマッピングできない時 - 1++の続き.
上記でやった方法では,
- tmuxでは
<C-h>
がキーマップできず, - vimでは
<C-h>
がキーマップできる.
という問題が起きた.
僕はtmuxとvimをシームレスに行き来するプラグイン(vim-tmux-navigator)を使っているため,
どちらでもキーマップできることが必須になる.
そこで, tmux側で<C-h>
をエスケープすることでtmuxとvimを共存させた.
一般的には以下の設定を行うとtmuxでエスケープできる.
参考サイト
// .tmux.conf bind-key -n C-h send-keys Escape "[104;5u"
これを応用して, キーマップを行った.
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' bind -n C-h if-shell "$is_vim" "send-keys Escape '[104;5u'" "select-pane -L"