typable_idプラグインを書いてみた

termtterは大変に便利なのですが、IDを直接指定するタイプのコマンドの入力が面倒だったので、それを補助するプラグインを書いてみました。これは、tig.rbの機能をまねして作ったものです。
typable_id.rb from ktgy's termtter-plugins - GitHub

これはなに?

termtterのタイムラインのstatusごとに、簡単な仮IDを付与してあげることにより、仮IDを入力するだけでstatusを指定できるようにするものです。当初は、completion_procで補完のために使うことを想定していたのですが、typable_id自体がステータスを持つようにしたため、statusに対して何かしたい場合にも使えるようになりました。
ただし、あくまで仮IDですので、流速がはやい場合などは数分で上書きされてしまいます。ですから、「目の前のstatusをサッと指定したい」という目的のみに割り切って使うのがよいでしょう。
デフォルトの仮IDは、規則性や打鍵数の少なさから、訓令式のローマ字にしてみました。カスタマイズできますので、自分の「手クセ」に合ったものにしたり、仮IDの保持数を変えたりできます。

どうつかうの?

このプラグインは単体では何の役にもたちません。このプラグインと連携するコマンドを用意して、はじめて効果を発揮します。

とりあえず、typable_id.rbを"~/.termtter/plugins"に入れて、~/.termtter/configに

config.plugins.stdout.timeline_format = '<90><%=time%></90> <<%=status_color%>><%=status%></<%=status_color%>> <90><%=id%>[<%=Termtter::Client.typable_id_convert(id)%>]</90>'
plugin 'typable_id'

と記述すると、タイムラインが以下のように表示されるとおもいます。

(12:34:56) screen_name: ここに投稿内容が 1234567890[ka]

末尾の[ka]がこの投稿の仮IDです。たとえば、

> command ka

と入力してやると、1234567890というIDのstatusに対してcommandが実行される、というようなイメージです。
また、

> command ka

と入力したところで[Tab]を押下することにより

> command 1234567890

に補完されるという使いかたも、termtterらしくていいですね(上にも書きましたが、最初はこういう使いかたを想定して作りはじめました)。

サンプル

これだけではしょうがないで、サンプルとしてstatusに含まれるurlを開くプラグインを書いてみました。