tmuxは、カスタマイズすることでより作業しやすい環境をつくることができますが、プラグインを導入することで簡単にこの環境を構築することができます。

この記事では、tpmによるプラグイン管理の方法と、おすすめの設定について紹介します。

tpmとは

tpm(Tmux Plugin Manager)とは、その名のとおりtmuxのプラグインを管理するためのツールです。

tmuxをカスタマイズする際、ほとんどの開発者で共通する設定(文字コードの設定など)があると思います。 こういった設定はプラグインとして公開されており、tpmをとおして簡単に導入することができます。

基本的な設定はtpmをとおして導入し、それ以外の設定のみを自分で書くことにより、設定ファイルをシンプルに保つことができます。

動作環境

この記事の内容は、次の各バージョンで動作を確認しています。

  • OS X 10.11.5
  • iTerm 3.0.4
  • tmux 2.2

tpmの使い方

1. インストールする

tpmはgitコマンドでインストールします。 以下を実行します。

$ git clone git@github.com:tmux-plugins/tpm.git ~/.tmux/plugins/tpm

2. プラグインを追加する

プラグインは、設定ファイルに以下のように追加していきます。

また、プラグイン定義以降の行にrunコマンドを記述し、tpmを初期化します。

~/.tmux.conf:

# プラグイン一覧
set-option -g @plugin 'tmux-plugins/tmux-continuum'
set-option -g @plugin 'tmux-plugins/tmux-copycat'
set-option -g @plugin '...'

# tpmを初期化する
run '~/.tmux/plugins/tpm/tpm'

3. 設定ファイルを反映する

設定ファイルを更新したら、これを反映します。 以下のコマンドで反映できます。

$ tmux source ~/.tmux.conf

4. プラグインをインストールする

プラグインをインストールためのコマンドは、prefix+Iです。

以上で、tpmの基本的な使い方はおわりとなります。

おすすめのプラグイン

以下に、おすすめのプラグインを簡単な説明つきで紹介します。

各プラグインのREADMEに詳しい設定内容が書かれていますので、詳細はそちらをご覧ください。

tmux-sensible

文字コードの設定など、tmuxにおける基本的な設定を行なえるプラグイン。

tmux-pain-control

ペイン間の移動やリサイズ、分割といった操作に関するキーバインドを設定するプラグイン。

tmux-yank

システムのクリップボードと共有するプラグイン。

tmux-copycat

検索機能を強化するプラグイン。

正規表現での検索などがあり、tmux-yankとあわせることで簡単に文字列をコピーできるようになります。

tmux-open

コピーモードでハイライトしたURLやファイルを開くためのプラグイン。

tmux-resurrect

tmuxのセッションを保存しておき、OSの再起動後に復元できるプラグイン。

ウィンドウやペイン、Vimで編集中のファイルなどを復元することができます。

tmux-continuum

tmux-resurrectでの保存を自動で行なったり、tmux起動時に自動で復元したりできるプラグイン。

おすすめの設定

プラグインで設定できない、いくつかの設定しておいた方がよい項目もあります。 以下に、簡単な説明つきで示します。

~/.tmux.conf:

# プレフィックスを Ctrl-t に設定する
set-option -g prefix C-t

# マウスを有効にする
set-option -g mouse on

# 操作モードを vi に変更する
set-window-option -g mode-keys vi

# コピーモードで v で選択モードに入る
bind-key -t vi-copy v begin-selection

# デフォルトのプレフィックスを無効にする
unbind-key C-b

付録:tmuxline.vim

tmuxline.vimは、vim-airlineの配色をもとにtmuxの見た目を設定するVimプラグインです。

tmuxline.vimで生成した設定ファイルを読み込むには、次のように設定します。

~/.tmux.conf:

if-shell 'test -f ~/.tmux/conf.d/tmuxline.conf' 'source ~/.tmux/conf.d/tmuxline.conf'

設定のすべて

以上をまとめると、以下のような設定ファイルになります。

~/.tmux.conf:

#
# Tmux Plugin Manager
#

set-option -g @plugin 'tmux-plugins/tmux-continuum'
set-option -g @plugin 'tmux-plugins/tmux-copycat'
set-option -g @plugin 'tmux-plugins/tmux-open'
set-option -g @plugin 'tmux-plugins/tmux-pain-control'
set-option -g @plugin 'tmux-plugins/tmux-resurrect'
set-option -g @plugin 'tmux-plugins/tmux-sensible'
set-option -g @plugin 'tmux-plugins/tmux-yank'

#
# General settings
#

set-option -g prefix C-t
set-option -g mouse on
set-window-option -g mode-keys vi
bind-key -t vi-copy v begin-selection
unbind-key C-b

#
# Plugin settings
#

# tmux-continuum
set-option -g @continuum-restore 'on'

# tpm
run '~/.tmux/plugins/tpm/tpm'

#
# Vim settings
#

# tmuxline.vim
if-shell 'test -f ~/.tmux/conf.d/tmuxline.conf' 'source ~/.tmux/conf.d/tmuxline.conf'

あわせて読みたい

おわりに

tmuxは、tpmを導入することで設定ファイルをシンプルに記述することができます。 tmuxをカスタマイズする際の参考にしてみてください。