vimperator が便利すぎてやばい。
元々、ほんの些細なブラウザ操作でもキーボードから手を離すのがかなりのストレスになるのだが、マウスでブラウザ操作するのは半ば諦めていたのに、かなり軽減された。
今までもなるべく手間を減らすように、ブックマークにキーワードを設定したり、Ctrl + L とかでアドレスバーなどにフォーカス後、URL を入力して飛んだりしていたのだけれど、検索や辞書などはそこからまたキーワードを入力せねばならなかったり。
しかし、それが 以下の vimperator plugin でかなり改善された。
Web辞書を引いて結果をバッファウィンドウに出力するvimperatorプラグイン – hogehoge
しかし、
「リクエストしてレスポンスをバッファに表示したい内容」
って、結構沢山ありそうで、もう少し拡張性がほしくなったので、プラグイン書いた。
CodeRepos::Share – Trac – _libty.js (共通ライブラリ)
CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 1.2)
CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 2.0pre)
仕様的には、lookupDictionary.js と似ている。(というか中身もぱくってる!)
実際にはこんな感じで表示される。
大体の使い方はプラグインのコメントに書いてるけれど、 ここでも説明しておく。
(これ読んで使おうと思う人は、ここでの説明はあんまりいらない気もするが)
SITEINFO
リクエストする URL は以下で拡張可能(優先順位高い順)
- プラグインの変数 SITEINFO
- .vimperatorrc
- アイテム – データベース: Multi Requester – wedata
ex.) .vimperatorrc
javascript <<EOM liberator.globalVariables.multi_requester_siteinfo = [ { map: ',me', // optional: keymap for this siteinfo call bang: true, // optional: args: 'any' // optional: name: 'ex', // required: subcommand name description: 'example', // required: commandline short help url: 'http://example.com/?%s', // required: %s <-- replace string xpath: '//*', // optional: default all srcEncode: 'SHIFT_JIS', // optional: default UTF-8 urlEncode: 'SHIFT_JIS', // optional: default srcEncode ignoreTags: 'img', // optional: default script, syntax 'tag1,tag2,……' extractLink: '//xpath' // optional: extract permalink }, ]; EOM
追記 2008/12/02 23:53 map, bang, args, extractLink追加
主な lookupDictionary.js と異なる点は、name の値がコマンドとはならないところ。
複数のリクエストを拡張する為に、サブコマンドとなっている。
Usage
実際のコマンドはデフォルトは :mr で
:mr ex INPUT_KEYWORD
とすることで、%s が INPUT_KEYWORD で置換されてリクエストされる。
追記 2008/11/20 03:00: テキストを選択状態で引数がない場合は、選択テキストで置換して実行するようにした。
:mr! ex INPUT_KEYWORD
とすると、結果が新しいタブに表示され、
:mr! ex -s
と -s オプションをつけることで、選択された文字列で実行される。
追記 2008/11/20 03:00: テキストを選択していて、引数がなければ自動で実行するようにした。
メインコマンドの :mr が気に入らない場合は、
let g:multi_requester_command = "ANY1, ANY2, ……"; or liberator.globalVariables.multi_requester_command = [ANY1, ANY2, ……];
で上書き可能。
Mappings
上記まででもだいぶタイピングの量は減るのだけれど、もっと簡略化する為のキーマッピングも設定可能。
liberator.globalVariables.multi_requester_mappings = [ [',ml', 'ex'], // <-- :mr ex [',ma', 'alc', , 'arg'], // <-- :mr alc arg [',mg', 'goo', '!', 'arg'], // <-- :mr! goo ];
設定内容は見たまんま。
自分でキーマップするのとの違いは、文字列が選択状態か arg が設定されている場合はすぐにリクエストが実行され、それ以外は入力待ちになるところ。
なので、この例の場合、何か文字列を選択した状態で ,mg とキーを打つと、即座に goo辞書 で検索結果が新しいタブに表示される。
Options
- let g:multi_requester_use_wedata = “false” // true by default
- wedata 利用制御フラグ。
追記 2008/11/20 01:50: 2.0pre バージョンを anekos さんが commit してくれた。
追記 2008/12/12 02:20: _libly.js が必要となってます。Links
– CodeRepos::Share Trac – _libty.js (共通ライブラリ)
– CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 1.2)
– CodeRepos::Share – Trac – multi_requester.js (for vimperator ver. 2.0pre)
– アイテム – データベース: Multi Requester – wedata
– Web辞書を引いて結果をバッファウィンドウに出力するvimperatorプラグイン – hogehoge
– suVeneのあれ: [vimperator]multi_requester.js で天気予報をみる!(extractLink)
コメント
vimperator のプラグインつくった。 > http://zeromemory.sblo.jp/article/23101073.html
[Vimperator][Firefox]これは便利 muilti_requester.js
vimperator が便利すぎてやばい。 元々、ほんの些細なブラウザ操作でもキーボードから手を離すのがかなりのストレスになるのだが、マウスでブラウザ操作するのは半ば諦めていたのに、かなり軽減された。 今までもなるべく手間を減らすように、ブックマークにキーワードを設
suVeneのあれ: [vimperator]リクエスト結果をバッファ出力(muilti_requester.js) http://zeromemory.sblo.jp/article/23101073.html
:mr alcを使って複数の単語を検索してみました.例えば,具体的に
:mr alc big guy
と入力してみました.しかし,どうやら単語同士がカンマ(%2C)で
区切られるみたいで,意図せずhttp://eow.alc.co.jp/big%2Cguy/UTF-8/
にリンクが飛んでしまい,うまく検索結果が返ってきませんでした.
http://eow.alc.co.jp/big%20guy/UTF-8/ のようにスペース(%20)で区切る
ようにして複数の単語での検索結果も返すことができれば良いのですが,
どこをどのように書き換えると良いか教えて頂けませんか?
#ソースをいろいろいじってみたのですが,よく分かりませんでしたorz
よろしくお願いします.
@multiwords
:mr alc “big guy”
で、空白込みの検索ができるはずです。
@suVene
ご返事をありがとうございます.早速,上記を試してみました.
しかし,うまくいきませんでした.どうやら今回は,
http://eow.alc.co.jp/%E2%80%9Cbig%2Cguy%E2%80%9D/UTF-8/
を探しに行ってしまっていてダメなようです.
今回もやはり,空白文字%20がカンマ%2Cに置き換わってしまって
いるみたいです.
:mr alc ‘big guy’
:mr alc “big guy”
でも同様に試してみましたが,やはり空白文字がカンマに置き換わって
いてダメでした.
その他にも何か良いアイデア等がありましたら,教えて頂けると
うれしいです.よろしくお願いします.
@multiwords
double quotation が、投稿すると全角になってしまっていたようです。
半角にしてもだめでしょうか?
ちなみに、multi_requester.js の ver. は、0.4.12, _libly.js の ver. は 0.1.21 でしょうか?
@suVene
半角でも試してみましたが,だめでした.
multi_requester.jsと_libly.jsは上記のリンクからダウンロード
したのですが,バージョンはそれぞれ0.4.7と
0.1.21になってました.
どうやらmulti_requester.jsのバージョンが古かったみたいです.
早速,ダウンロードして~/.vimperator/plugin/以下に.jsファイル
を置いてから,firefoxを再起動して使ってみました.しかし,今度は
:mr のコマンドすら効かなくなってしまいました...
なぜ動かなくなってしまったのか分かりません.
何か心当たり等ありますでしょうか?
@multiwords
0.4.7 って相当古いですね。去年の12月 Ver.かと。複数引数対応も、0.4.10 あたりなので。
> なぜ動かなくなってしまったのか分かりません.
> 何か心当たり等ありますでしょうか?
情報が少なすぎて、何も心当たりません。
(というか沢山の要因があって特定できません。)
少なくとも、fx の ver., vimperator の ver. :message の出力結果等を添えて下さると、なんらかのコメントもできると思いますが。
@suVene
失礼致しました(汗)私の環境情報をお知らせします.
firefoxやvimperatorのバージョンは次のようになっています.
:version
Vimperator 1.2 (created: 2008/08/16 18:51:52) running on:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009030516 Ubuntu/9.04 (jaunty) Firefox/3.0.7
どうぞよろしくお願い致します.
P.S. そういえば,multi_requester.js ver. 0.4.7は,そのままでは使え
なかったことを思いだしました.調べてみたら,line 93が
io.source(io.expandPath(‘~/vimperator/plugin/_libly.js’));
となっていたので,
io.source(io.expandPath(‘~/.vimperator/plugin/_libly.js’));
とすると(.をvimperatorの前に付けると)使えるようになりました.
今回のver. 0.4.12が動かない原因とは直接関係ないかもしれませんが,
万が一の為にお知らせします.
なるほど、環境がわかりました。
multi_requester.js の ver.0.4.7 だった理由は、Vimperator 1.2 用の multi_requester.js だったからですね。
Vimperator 1.2用の開発は、ver.0.4.7 で同期をとるのが面倒になってきたので、終了して、現在取得されている ver.0.4.12 は、Vimperator 2.0pre 以降用になっています。
Vimp の 1.2用の取得先は、
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/branches/1.2/
以下にあり、
2.0pre以降用は
http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/
から取得します。
そして、当初の質問の複数引数の対応は、残念ながら 2.0pre 以降しか対応しておりません。現在の vimp 2.0 は、かなり安定しているので、この際変更してみるのも手かなと思います。
(若干 rc ファイルの変更が必要になりますが)
@suVene
vimp2.0にアップグレードしたら全て解決しました.
いろいろとアドバイス頂き,ありがとうございました.
:mr alc ‘big boy’
だけでなく,
:mr alc big+boy
でも同様に複数語を検索できるみたいです.
こちらの方が入力が少ないので良いかもしれません:)
あと,検索結果の英単語間のスペースが消えて,単語同士がつながって
表示されてしまうようです.
例,
* bigboy
大物{おおもの}、大企業{だいきぎょう}
* bigstrappingboy
長身{ちょうしん}でがっしりした体格{たいかく}の[大柄{おおがら}な]少年{しょうねん}
vimperatorのmulti_requesterが快適すぎて鼻血でてくる。現状、英辞郎をひこうと思ったらname: alcのxpathを"resultList"から"resultsList"に変更してやる必要があるけど。 http://bit.ly/i4xx6S
[delicious] [vimperator]リクエスト結果をバッファ出力(muilti_requester.js) – suVeneのアレ: http://bit.ly/eLL7az
http://d.zeromemory.info/2008/11/20/vimperator-multi_requester.html 天気予報をバッファで表示させている. たまに使う… http://goo.gl/fb/vp72n
なうぶらうじんぐ→ [vimperator]リクエスト結果をバッファ出力(muilti_requester.js) – suVeneのアレ http://d.zeromemory.info/2008/11/20/vimperator-multi_requester.html