setlocalパッチを先取り適用してみた
VimperatorのML([Vimperator] :setlocal / :setglobal implementation patch)に上がっていたのを勝手に当てて試してみた。
このパッチはよってオプションの設定値をバッファ*1毎に設定できるようになる。
以下は効果が分かり易そうなhinttags*2で試してみた手順。
とりあえず、上記ページの添付ファイルをダウンロードし、CVS HEADにパッチを適用
cd ~/workspace/vimperator/src/content patch -i ダウンロードしたファイル vi hints.js
--- hints.js 2008-06-20 07:4:5.000000000 +0900 +++ hints.js.test 2008-07-19 01:6:3.000000000 +0900 @@ -552, +552, @@ liberator.options.add(["extendedhinttags","eht"],n "XPath string of hintable elements activated by ';'",n- "string",DEFAULT_HINTTAGS); + "string",DEFAULT_HINTTAGS,{scope:liberator.options.OPTION_SCOPE_BOTH}); liberator.options.add(["hintstyle","hs"],n "CSS specification of unfocused hints",n@@ -560, +560, @@ liberator.options.add(["hinttags","ht"],n "XPath string of hintable elements activated by 'f' and 'F'",n- "string",DEFAULT_HINTTAGS); + "string",DEFAULT_HINTTAGS,{scope:liberator.options.OPTION_SCOPE_BOTH}); liberator.options.add(["hinttimeout","hto"],n "Automatically follow non unique numerical hint",n
と{scope:liberator.options.OPTION_SCOPE_BOTH}
を加え*3、xpiファイルをmakeしてインストール
cd ~/workspace/vimperator/src make xpi firefox ../downloads/vimperator_1.2pre.xpi
さらに.vimperatorrcに
autocmd LocationChange ^https?:/mail\.google\.com/mail/ :setlocal hinttags=//a[@class="zD5BAe"]|//button[@class="Gjckbb"]|//span[@class="bsABdf"]/span|//div[@class="KqCCmd"]|//div[@class="QOD9Ec"]|//div[@class="DiWSpb"]|id(":w")|id(":y") autocmd LocationChange ^http:/b\.hatena\.ne\.jp/teramako :setlocal hinttags=//a[@class="bookmark"]|//dd[@class="users"]/strong/a|//img[@class="comment_img"]|//ul[@class="bookmarkinfo"]//a|//div[@class="taglist"]//a|//div[@class="taglist"]/div/h3/input
を加えて、Gmailやはてなブックマークでヒントを使用するとautocmdで設定したhinttagsが有効になる。ページ毎に必要最低限にヒントを絞ることが可能になるのでヒントが使用しやすくなる。
ページ毎最適化万歳