screen
やtmux
で設定はしてみたけど、アレ?どうやるんだっけ。ってなる時ありませんか?
こんなことを最近tmuxを使っていて実感しまして、改めてtmuxの設定を見直すのを兼ねて環境を再構築してみました。
今回はTmux Plugin Managerというtmuxにプラグイン構造を提供してくれるソフトウェアを利用します。
なぜ、これを利用したかというと
- 設定を一から書いていくのは面倒
- 大半が多くの人と似たような設定になる
- 普段使っている機能はプラグインとして提供されている
というような理由です。結果として設定をずらずらと書いていく作業はありませんでした。
また、プラグインで設定されているキーバインドも私が以前に利用して設定よりも直感的になり、「アレ?なんだっけ」とキーバインドを忘れるようなことも少しは減るのではないか。と感じました。
プラグインを作る方法についても解説されているので、代替機能のプラグインがない場合は自分でプラグインを書いてしまえば良いと思います。
インストール方法
Tmux Plugin Manager を利用方法を解説します。tmux
はバージョン1.9以上を導入しておいてください。
まずはTmux Plugin Manager をgit cloneしてきます。
$ git clone <https://github.com/tmux-plugins/tpm> ~/.tmux/plugins/tpm
~/.tmux.conf
に最低限必要な設定のみを記述します。簡単な解説はコメントに記述しています。
# お好みのプレフィックスキーを設定してください
set-option -g prefix C-t
bind-key C-t send-prefix
unbind-key C-b
# マウスを利用する人は設定をしてください
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
# 利用するプラグインを記述してください(詳しくは後述を参照))
set -g @tpm<sub>plugins</sub> '
tmux-plugins/tpm
tmux-plugins/tmux-copycat
tmux-plugins/tmux-logging
tmux-plugins/tmux-open
tmux-plugins/tmux-pain-control
tmux-plugins/tmux-resurrect
tmux-plugins/tmux-resurrect-auto
tmux-plugins/tmux-sensible
tmux-plugins/tmux-yank
'
run-shell '~/.tmux/plugins/tpm/tpm'
以上でtmux
を起動してください。
Tmux Plugin Manager
@tpm<sub>plugins
で記述したプラグインを導入・管理してくれるプラグインです。
設定したプラグインを導入するためにも、まずはこれを実施してください。
- prefix + I … プラグインをインストール
- prefix + U … プラグインをアップデート
利用できプラグインがいくつかある ので、興味のあるものをインストールしてみると便利です。
Tmux sensible
これは多くの利用者が設定すべきであろう基本的な設定を設定してくれるプラグインです。
何を設定しているかの詳細は README で確認できます。
mode-keys
の設定が初期値だとemacsになっているのでviを利用している人は
set -g mode-keys vi
などをtmux.confに追加して設定しておくと良いかと思います。
私はprefix
を初期値のb
から変更しているので、この設定も追加しておきます。
set -g prefix C-t
Tmux Pain Control
tmuxのウィンドウを分割するpainの操作を直感的にできるように設定してくれるプラグインです。
README にGIFアニメとともに操作方法について説明されているので、詳しくはそちらを確認するとわかりやすいです。
Tmux copycat
tmuxに映しだされた内容から正規表現で検索できるようにしてくれるプラグインです。
- prefix + / … 検索
検索中の操作
- n … 次にマッチするものに移動
- N … 一つ前にマッチするものに移動
- Ctrl+w … ハイライトされている内容をコピー
Tmux Yank
コピーモードで選択した内容をシステムのクリップボードへ入れるための設定をしてくれるプラグイン
- prefix + y … 選択中の内容をシステムのクリップボードに入れる
※デフォルトだとprefix + [
でcopy-mode
に入る
Tmux Logging
tmuxで操作した内容をテキストファイルに保存しておける操作を設定してくれるプラグインです。
ansifilter
を導入しておけば、カラーコードも自動的に削除してくれて綺麗な作業ログを残すことができます。
- prefix + shift + p … ロギング開始
- prefix + alt + p … スクリーンキャプチャ
- prefix + shift + alt + p … ロギング終了
まとめ
今回はTmux Plugin Managerのレールに乗っかることによりtmuxの環境を再構築しました。個人的にはpainの操作などがより直感的な設定になったので、今まで以上に活用していけると思います。
tmuxやプラグインで利用されている機能については下記の書籍がわかりやすくてオススメです。