/halt/Snapshot – vimperatorをロケーションバーを使わないで運用する設定に続くツールバー削除エントリ。
ロケーションバーがなくなると、随分すっきりして画面が広くなるわけですが、私はブックマークツールバーに、「はてブ」とか「LDRに登録」とかのブックマークレットを登録して必要な時にくりっこしているのでこれは捨てられません。
しかしせっかくvimperatorを使っているというのにマウスをわざわざつれてきてlivedoor Clipするなんてvimperatorがかわいそうです。そこで、ブックマークの中からbookmarkletを抽出し、それをvimperatorのコマンドとして登録するプラグインを書くことで、ブックマークツールバーなしで運用できるようにしました。
commandBookmarklet.js
(function(){
var filter = "javascript:";
var items = vimperator.completion.bookmark(filter);
if (items.length == 0) {
if (filter.length > 0) {
vimperator.echoerr("E283: No bookmarks matching "" + filter + """);
} else {
vimperator.echoerr("No bookmarks set");
}
}
for (var i = 0; i < items.length; i++) {
var title = vimperator.util.escapeHTML(items[i][1]);
if (title.length > 50) {
title = title.substr(0, 47) + "...";
}
var url = vimperator.util.escapeHTML(items[i][0]);
var command = new Function('', 'vimperator.open("' + url + '");');
vimperator.commands.add(new vimperator.Command(
[title],
command,
{
shortHelp: 'bookmarklet',
help: title + '<br>' + url
}
));
}
})();
このコードをcommandBookmetklet.jsとして.vimperator/plugin/ディレクトリに保存すると、次回実行時からブックマークレットをコマンドにします。
ブックマークのタイトルをコマンド名にするので、事前にブックマークレットのタイトルを実行する時のコマンド名に変更しておく必要があります。
はてブ -> hatebu
みたいな感じで。コマンド名に_は使えないっぽいので普通のアルファベットだけにしておいたほうが無難です。ブックマークレット一覧を補完で選択したい時は、すべてのブックマークレットのタイトルにプレフィックスをつければいいでしょう。
とうとう私のguioptionsはmだけになりました。mのメニューもコマンドでなんとかならないかなー。