もた日記

くだらないことを真面目にやる

tmuxメモ : TPM(Tmux Plugin Manager)プラグインの作り方

github.com

TPM(Tmux Plugin Manager)で使えるtmuxプラグインの作り方は上記ページに書いてあるように簡単で流れとしては以下の通り。

  1. gitプロジェクト作成
  2. ランファイル作成(*.tmux)
  3. キーバインド設定作成
  4. メインスクリプト作成
  5. テスト
  6. プラグインを公開

流れに沿ってprefix + Tを押すとインストールされているプラグインリストを表示するプラグインを作成してみる(ソースコードこのページを参照)。

gitプロジェクト作成


まず新しいgitプロジェクトを作成する。

$ mkdir tmux_my_plugin
$ cd tmux_my_plugin
$ git init


ランファイル作成(*.tmux)


次に*.tmuxという拡張子でランファイルを作成して実行権限を付与する。
プラグインが有効になるとTPM(Tmux Plugin Manager)はプラグインディレクトリにある全ての*.tmuxファイルを実行する。*.tmuxは2つ以上あっても全てが実行されるが、たいていの場合は1つあればよい。

$ touch my_plugin.tmux
$ chmod u+x my_plugin.tmux


キーバインド設定作成


次にキーバインド設定を作成するが、今回はprefix + Tを割り当てる(デフォルトでは何の機能も割り当てられていないので)。
エディタで先ほど作成したランファイルを開いて、

$ vim my_plugin.tmux

下記コードを追加する。コードはbashスクリプトTを押せばscripts/tmux_list_plugins.shが実行される。

#!/usr/bin/env bash

CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
tmux bind-key T run-shell "$CURRENT_DIR/scripts/tmux_list_plugins.sh"


メインスクリプト作成


続いてTを押して呼ばれるメインのスクリプトscripts/tmux_list_plugins.shを作成する。

$ mkdir scripts
$ touch scripts/tmux_list_plugins.sh
$ chmod u+x scripts/tmux_list_plugins.sh

スクリプトの中身は下記。

#!/usr/bin/env bash

# fetching the directory where plugins are installed
plugin_path="$(tmux show-env -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)"

# listing installed plugins
ls -1 "$plugin_path"


テスト


テストをするために下記コマンドでランファイルを実行した後でprefix + Tを押す(大文字なのでprefix + shift + t)。プラグインのリストが画面に表示されれば成功。

$ ./my_plugin.tmux


プラグインを公開


テストで問題がなければGiuHubにプッシュする。プラグインが公開されれば他ユーザは.tmux.confset -g @plugin 'github_username/repository'を追加するだけで利用できるようになる。