tmuxのススメ!! conf設定@2020

2020年7月29日

この記事を読むと得られる情報

下記特徴を持つ、便利で視認性の高いTmux環境の構築方法

  • 見た目の特徴
    • 非アクティブのペインが若干白っぽくなる(アクティブペインが見やすい)
    • ステータスバーに欲しい情報を乗せることが出来る
  • 機能的特徴
    • マウスが使える
    • クリップボードとの連携(プラグインは不要)
    • ペインの移動がprefix不要でスムーズに
    • ペインの並列実行の有無をトグルで行う
tmuxの完成予想図
tmuxの完成図

快適なコンソール生活を送りたい!

コンソールを使わなければならないなら、せっかくなら快適でカッコイイコンソールを使いたい!!
そう思ってひたすらカスタムした今までの系譜を記したいと思います。
みなさんのより良いコンソールライフの足しになればと思います。

その前に

🤔「そもそもtmuxってなに?」
🤨「何が便利なの?」

という人向けに簡単に説明しますと

  • どんなコンソールアプリやサーバー画面でもインストールさえすれば仮想ターミナルが使えるソフト
  • 殺風景なコンソール画面を自分好みにカスタマイズ可能
  • コンソールの状態を保存可能

のようなスーパー便利ツールです!

😰「MacにあるiTerm2でよくない?」

というお声もあるかと思いますが、とにかくインストールさえすればどんな環境でも使えるという冪等性が魅力的です。
インストールさえ、といいますがインストール権限さえあればLinuxもMacもWSLにもインストール可能なので実質どこでも使えます!

さて実践

環境

  • Mac(Mojabe)
    • tmux 2.9a
    • iTerm2(デフォルトのコンソールでもOK)
      • クリップボードとの連携をするため(赤い部分にチェックをつける)
iterm2設定画面
iterm2設定画面
  • Ubuntu(18.04) in WSL
  • win32yank.exeを導入してクリップボードと連携する
    • win32yankはクリップボードと連携するツール
    • 上記URLからダウンロード&解凍後Windows側でパスの通ったディレクトリに配置

confの内容

以下の内容をホームディレクトリ.tmux.confという名前で保存してください。

最後の☆2つの箇所はOSによって書き分けてください。

解説

基本設定

これらは見た目の問題なので拘る必要はないです。
今回は割とシンプルに基本的なものしか入れてませんが個性が出るところなのでこだわりたい人はここでもりもりしてください。
基本的にはコメントのとおりです。

キーの割り当て

  • tmuxの操作はprefixキーのあとに打ち込んだキーで決まってます
  • デフォルトのprefixは個人的には使いにくいのでControl + aに変えてます
  • ペインの切り替えはより直感的に"prefix + -“で水平分割、“prefix + |"で垂直分割
  • ペインの移動はシフトキー + 矢印キーで動けます
    • bind -nはprefix不要、という意味です。他でも使えますのでお好みで設定してください。
    • 別途 Control + oで順次移動もできます。
  • “prefix + e"で同時実行のオンオフにできます。
    • オンオフの様子は最初のGIFで確認してみてください
    • 一斉に日付が表示されているのがわかるかと思います

ステータスラインの設定

今回ステータスラインを上に表示してますが、そこの設定を書いてます。
基本的にはコメントのとおりですが、最後の行でtopやら別のスクリプトを叩いてその情報を表示してます。
スクリプト実行出来るので何でも表示できます。今回は私が使ってるスクリプトも後悔します。
(Macの動作しか保証できません)

操作系

基本的にはマウスでのスクロールを有効化したり、prefix+[で入るコマンドモードでのコピーの仕方をvi風にしています。
またそのコピーしたデータをクリップボードと連携するための設定を記載してます。
WindowsもMacも同じことができますが、書き方が違うので環境に応じて書き換えてください。