vimperatorのプラグインを作ってみた

タイトルそのままです!
vimperatorのプラグインを作ってみてます。

先週は、goo.glで短縮するためのcopy.js拡張をつくってみたので、今度は本体にチャレンジ!的なかんじ。

websearch.js

名前の由来は、QuickSilver拡張の、Websearch module。

機能としては、簡単にウェブサービスにアクセスできるようになること!

github

さきほどgithubにコミットしました。
https://github.com/sugilog/websearch.vimpr
のぞいてみてください。

例えば

例示で付けているのはalc。良く英単語引きに行くわけですが、フォームに入力するのはめんどくさい。
vimperator使ってるのなら、

:alc keyword

とかで検索したい、と思うのが、健康的なんじゃないかとヽ(´ー`)ノ

ちなみに

:alc! keyword

とかしたら、新しいタブをひらいてウェブサービスにアクセスできたら、もっと良いわけですね。


そしたならば拡張するわけですね。(alcはソース内で設定しています。)

templates = [
  { names: ['alc'], description: 'search alc', url: 'http://eow.alc.co.jp/%KEYWORD%/UTF-8/' }
];

という感じ。
コマンドは、多分いくつでも設定できます。

  • names
    • コマンドの名前の設定
  • description
    • 説明書き
  • url
    • そのコマンドでアクセスしたいウェブサービスのURL
    • キーワードで置換したい部分を、%KEYWORD%に設定する

ちなみに


ユーザーカスタマイズを前提につくっていますが、実はまだ拡張できるようには作ってないです。ソースコード直接いじってね的な状態。

copy.jsを参考にしながら組み立てていて、copy.jsはユーザーがvimperatorrcとかで設定できるようにしているので、そのあたりをちゃんと学んで設定するのが次のtodo。
そしたら結構使いやすいんじゃないかな

対応しました。(2011/03/29)
pluginファイルの中でサンプルとして定義している alcのテンプレートと、ユーザー定義のテンプレートを、concat(足し算)するようにしています。

拡張方法

以下のような形で、テンプレートを.vimperatorrcに設定してください。

javascript <<EOM
liberator.globalVariables.webSearchTemplates = [
  { names: ['alc'], description: 'search alc', url: 'http://eow.alc.co.jp/%KEYWORD%/UTF-8/' }
];
EOM

%KEYWORD% の部分が置換される対象です。

ユースケース

  • 辞書サービス
  • tracのチケット
  • 業務で使っているサイトの管理画面
  • amazonもいけるかな?

まぁ基本単純にはつくっているので、なんでもできるのでは?と感じています。

とまぁ、昨日くらいからつくりはじめたので、正直まだ何も分かっていません。
が、とりあえず便利になるツールだと感じているので、もう少し作りこみます!