Termtterでuriを開こう! - uri-openの紹介と改良
Termtterにはstatus内のuriを開くための
uri-openという便利なpluginがある
> uri-open list または uo list
とすればstatusのuriが連番付きでリスト表示されるので
次いで
> uri-open 3
などとして対象のuriを選べばいい
このときexpand-tinyurlというpluginを使って
リスト表示されるuriを短縮形から直しておくのがいい
Termtterには入力のタブ補完機能があるので
長いcommand入力も苦にはならないけど
良く使うcommandにはaliasを割り当てるのが便利だ
.termtter/configファイルで以下のようにする
config.plugins.alias.aliases = { :o => 'uri-open', :ul => 'uri-open list', }
また各statusには$amのようなIDが付いているので
> o in $am
とすればstatusを指定してopenできる
最も新しいstatusを開く場合は単に
> o
とすればいい
> o delete 5
などとしてから
> o all
とすればすべて一度にopenすることもできる
uri-open allは確かに便利だけれど
listに大量のuriが入っている場合大変なことになる
そこで僕はuri-openを少しいじって
いくつかのuriをopenするsomeコマンドを追加してみた
uri-open.rb 7d6 < config.plugins.uri_open.set_default :some, 5 46,51d44 < when /^some\s*(\d*)$/ < some = $1.empty? ? config.plugins.uri_open.some : $1.to_i < some.times do < return unless uri = public_storage[:uris].shift < open_uri(uri) < end 83c75 < %w(all list delete clear in some).grep(/^#{Regexp.quote arg}/).map {|a| "#{cmd} #{a}" } --- > %w(all list delete clear in).grep(/^#{Regexp.quote arg}/).map {|a| "#{cmd} #{a}" }
これにより
> o some
で最新の5つのuriがopenする
> o some 10
とすれば10のuriがopenする
.termtter/configに
config.plugins.uri_open.some = 3
とすればdefaultの5つを変更できる
またconfigに
config.plugins.alias.aliases = { :some= => 'eval config.plugins.uri_open.some=' }
とaliasを追加すれば
> some= 10
で一時的にdefaultを変更できる*1
それからuri-open in $am で個別にopenするときに
$を省略して
> o in am
と打てるようにもしてみた
uri-open.rb 68d60 < id = Termtter::Client.typable_id_to_data(id) unless id =~ /\d+/
Termtterはこういった改良を簡単にできるので
便利だし勉強にもなる
*1:someと=の間にspaceを空けない