Edited at

tmuxの操作を選択的UIでインタラクティブにする

今回作ったのは、tmuximumというシェルのコマンドです。

ZIFU3.gif


使い方

tmuximumは、tmuxのコマンドによる一連の面倒な操作を簡略化するために作られました。

例えばtmuxのセッションにアタッチするのに、普通は

$ tmux list-sessions

2: 1 windows (created Thu Jul 14 22:55:13 2016) [123x48]
4: 1 windows (created Thu Jul 14 23:19:11 2016) [80x24]
5: 1 windows (created Thu Jul 14 23:19:32 2016) [80x24]
$ tmux a -t 4

と、セッションのリストを表示させてそこから目当てのセッションを選びアタッチするような作業をしなければいけませんが、tmuximumなら

$  tmuximum

ZIFU3.gif

と、コマンド一発で選択的インターフェイス(この場合はfzf)を使い目的のセッションにアタッチできます。

具体的に機能を説明していきます。

このコマンドは、tmuxの内外で挙動が変わります。


tmux外

tmuxの外にいるときにtmuximumでできることは


  • 既存のセッションにアタッチ

  • 新しいセッションを作る

  • 既存のセッションを終了する

です。

このうち上二つは先ほどのgifでわかると思いますが、セッションの終了はこんな感じです↓

ZIFU4.gif

上のgifでは既存のセッションを二つ終了しています。

全部上下十字キーとEnterのみでできるので非常にストレスなく操作できます。


tmux内

tmuxの中にいるときにtmuximumでできることは


  • ウィンドウの移動

  • セッションの終了

  • ウィンドウの終了

です。

tmuximum_4.gif


使用例

まず、tmuximumってコマンドが長くて打ちにくいので(tmuxの2倍も打たなきゃいけない) ~/.zshrcとかに


.zshrc

alias t="tmuximum"


ってしとくといいと思います。頻繁に使うので一文字で。

一番オススメなのは、シェルの起動時に自動でtmuximumを実行させることです。

今までもシェルの起動時に「セッションがなかったらtmux new-session、あったらtmux attach」みたいな設定を書いてた人は多いと思うんですけど、tmuximumを使うことによってより快適になります。


.zshrc

if [ -z $TMUX ]; then

tmuximum
fi


インストール

2018/4/5追記

antigenでは

antigen bundle arks22/tmuximum

ソースからインストールする場合は

$ curl -L raw.github.com/arks22/tmuximum/master/install.bash | bash 

とかでなんとかしてパスを通すなどしてください。

---以上追記---

zplugを使っている方は、


~/.zshrc

zplug "arks22/tmuximum", as:command


としてくれれば動きます、zplug最高

そういえば、fzfがないと動きません。すいません、いつかpecoとかにも対応します

fzf,fzf-tmux,peco,percol,gofに対応しました。(2018/4/5追記)

zshでしか動作確認していないので、bashとかfishだとどうなるかわかりません。不具合があったらここのコメントでもいいので報告してください。すぐ直すと思います。