vimの便利なPlugin(その14)vim tmux navigator

   2017/05/01

vim-tmux-navigatorプラグインは、vimのwindowとtmuxのpaneをシームレスに移動できるようにするものです。 普段、tmuxのwindow内にpaneをいくつか開き、vimでwindowを複数開くと、それぞれの場合によって移動コマンドキーを意識しながらwindow間を移動するのが面倒になります。 このプラグインを設定しおくことによって同じキーで楽々移動できます。 ここでは、以下の環境での使用を前提にしています。

  • CentOS6.8 x86_64
  • vim-7.4

Install

今回もdein.vimを前提とさせていただきます。 まだ、dein.vimを使っていない方は(その5)から。

.vimrcに以下の行を追加します。

call dein#add('christoomey/vim-tmux-navigator')

これで「:call dein#install()」をコマンドラインモードで実行すればインストールは終了。

使い方

~/.tmux.confに以下の行を追加します。

設定は以上になります。注意点として、bind-keyに -n をつけるとtmuxのPrefixキーをタイプする必要がなくなります。キーバインドが他とバッティングしないようでしたら -n を使ってみて下さい。 これでvimとtmuxの移動がシームレスにできるようになります。

C-h 左へ移動
C-j 下に移動
C-k 上に移動
C-l 右に移動
C-\ 以前いた場所に移動

キーバインドがバッティングするとうまく動作しないので、tmuxのキーバインドを変更している場合はよく確認して見て下さい。 キーバインドの確認は、tmuxのコマンド :list-keys か tmux list-keys でできます。 また上記(プラグインで定義されている)以外のキーバインドを設定したい場合は、~/.vimrcに次のようにキーをマップすると良いようです。

但し、{}内は、置き換えたいキーバインドに変更して下さい。 設定オプションとして、vimのあるwindow(buffer)から何処へ移動するとそのbufferを自動保存してくれる機能があるようです。設定するには、~/.vimrcに以下を追加します。 1は現bufferに変更がある場合に保存、2は全てのbufferを保存。

let g:tmux_navigator_save_on_switch = 1

注意点として、C-lで右に移動できるようキーを設定しましたが、このキーはスクリーンをクリアして綺麗にするコマンドでもあります。キーがバッティングしていますので、~/.tmux.confに次の行を追加して <prefix> C-lでクリアできるようにしておくと良いかもしれません。お好みで。

bind C-l send-keys 'C-l ' 

tmuxの概要とインストールを参考にインストールされたかたは、上記の設定だけでは、いったんvimのwindowに入ると移動できないかもしれません。vimからtmuxプログラムへのパスが見つからないのが原因のようです。(/usr/local/tmux2.3へインストールしてしまっているため)そんな場合は、パスが通るように ln -s /usr/local/tmux2.3/bin/tmux /usr/local/bin/tmux としてリンクを作成するなどしてみて下さい。

参考)vim-tmux-navigator

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら