レノボ・ジャパン ThinkPad USB トラックポイントキーボード(日本語) 55Y9024
を購入して大変幸せになってる teramako です!
Vimperator のヒントは XPath で制御されている。その XPath はset hinttagsで変更可能ですが、set(厳密にはsetglobal)では全体のデフォルト値を変えるような働きをしてしまいます。一時的にというか特定のページでは特定のリンクのみにヒントが出て欲しいなどの要求ってあると思うのです。
で、結構前から、setlocalコマンドは存在していて、こちらはタブにその設定値が保存される仕組みになっています。しかし、現在Vimperatorはデフォルトがglobal値しか許可していません。
ということで、ゴニョっと変えてしまいましょう。
js options.get("hinttags").scope = Option.SCOPE_BOTH autocmd LocationChange "^http://b\\.hatena\\.ne\\.jp/" setlocal hinttags=//xhtml:a
global値を取ってくるかlocal値を取ってくるかはオプションオブジェクトのscopeプロパティで制御されているので、それを上書きします。Option.SCOPE_BOTHにすることで、local値があればそれをなければglobal値を取るという動作に変更できるのです。*1
次行のautocmd LocationChange ...は現在のURLが変わったとき(タブを切り替えたり、ページがロードされた時)に自動発動するもの。2番目の引数でURLの正規表現文字列、3番目以降に実行するコマンドって感じ。
例でははてなブックマークのページだったら、hinttagsオプション値をa要素のみのXPathに変更してる。
以上、ちょっとした小ネタでした。
hinttagsとextendedhinttagsのオプション設定を弄ってsetlocal出来るように本家にコミットした。
setlocal された後のページ繊維後のことを考えていなかった。
autocmd LocationChange .* -javascript delete tabs.options.hinttags autocmd LocationChange "^http://b\\.hatena\\.ne\\.jp" setlocal hinttags=//xhtml:a " ...
みたく最初にクリアするのを入れたほうが良いかも
*1:Vimperator側で全部SCOPE_BOTHにしておけよって話ですけどねw コードのコメントに// XXX set to BOTH by default someday ?などと書かれていたりします