🙆‍♀️

tmux でセッションを記憶する

2021/06/03に公開

tmux はターミナルを使う上で非常に便利なツールですが、PC の再起動時やハングしてしまった時にセッションが消えてしまって悲しくなる瞬間があります。

tmux にはプラグイン機能があり、tmux-resurrect というプラグインがあります。

このプラグインを使って、ハングしてしまってもセッションが残るように設定してみました。

前提

tmux は導入している前提で書いております。
手元で動かした環境は macOS Catalina (10.15.6) です。

Tmux Plugin Manager をインストールする

まずはプラグインを導入するために TPM (Tmux Plugin Manager) をインストールします。

GitHub に書いてある通りにはなりますが、順を追って設定して行きます。

リポジトリをクローンする

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

~/.tmux.conf にプラグインを設定する

GitHub の通り、以下の2つをリストアップし、 run で TPM の初期化を行います。

tmux-sensible は全ての tmux ユーザーに設定してほしいものだそうです。詳細は GitHub をご参照ください。

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

編集を保存して、設定ファイルをリロードします。

tmux source ~/.tmux.conf

tmux-resurrect プラグインを追加する

~/.tmux.conf を開いて、以下を追加します。

set -g @plugin 'tmux-plugins/tmux-resurrect'

編集を保存したら、 prefix + I でプラグインをインストールします。

セッションを保存してリストアしてみる

セッションの保存とリストアは以下のコマンドで実行できます。

  • 保存
    • prefix + Ctrl-s
  • リストア
    • prefix + Ctrl-r

保存すると、以下のメッセージが表示されます!

同様に、リストアすると以下のメッセージが表示されて、セッションが復活します!

自動でセッションを保存してくれるようにする

なんと、tmux-continuum という自動でセッションを保存してくれるプラグインがあります!

なので、このプラグインを追加してみます。

もうご存知の手順で、 ~/.tmux.conf に追加してインストールします。

set -g @plugin 'tmux-plugins/tmux-continuum'

prefix + I でインストール。

すると、以下のディレクトリにテキストで状態が保存されリストアできるようになるようです。

% ll .tmux/resurrect 
total 24
... 09:16 last -> tmux_resurrect_20210602T091603.txt
... 17:24 tmux_resurrect_20210601T172447.txt
... 17:46 tmux_resurrect_20210601T174654.txt
... 09:16 tmux_resurrect_20210602T091603.txt
%

だいぶ便利になりました!

Discussion