vimperatorでブックマークツールバーを使わないで運用する設定

/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のメニューもコマンドでなんとかならないかなー。

投稿者: halt

PHPプログラマ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください