後で読むを支援するvimperatorのプラグインを作ってみた
私は,読み終わったサイトはdeliciousに,後で読もうかなーってサイトはfirefoxのブックマークに登録して,ブックマークを使い分けていたんだけど。
このfirefoxのブックマークの操作は,残念なことにvimperatorを使っていてもマウスを使わざるをえなく,腕に負担がかかってしまう。
この腕の疲労は,ブラウザに体を蝕まれているということを示唆していて,真に深厚な状態である。
そこで,この状態を打破するために,マウスを使わなくても操作が可能なブックマーク領域を作ってみた。
アイディアはネットスケープのLinkPadを継承している。というかパクリ。
私は,Cしか高級言語を触ったことが無いので,javascriptみたいなのは変体すぎて触ってみる気に慣れなかったんだけど,vimperatorがあまりにも魅力的過ぎるからプラグインを書いてしまった。javascriptでプログラムのようなものを書いたのは初めてだから,もしかしたらjavascriptらしくないプログラムかもしれないので至らないことがあったら,コメントしてちょ。
linkpad.js
/* * @name linkpad.js * @description like LinkPad of Netscape. * @description-ja ネットスケープのLinkPadのようなもの。 * @author wocota <wocota@gmail.com> * @version 0.01 * * LICENSE * Public Domain http://creativecommons.org/licenses/publicdomain/ * * USAGE * :linkpad [site] * LinkPadに登録されているサイトを表示。選択して開く。開くと勝手にLinkPadから消える。 * :addlinkpad * LinkPadに登録。 * */ liberator.plugins.exLinkPad = (function(){ var linkpad = storage.newMap("linkpad", true); var links = []; // view links list and open link commands.addUserCommand(['linkpad'],' linkpad ', function (args){ let arg = args.literalArg; let num = arg.match(/^\d+/); if(num > 0){ liberator.plugins.exLinkPad.open(links[--num][1], liberator.NEW_TAB); } else { liberator.echoerr("Error!:not set"); } },{ completer: function(context) liberator.plugins.exLinkPad.list(context), argCount: "?", bang: true, count: true, literal: 0 } ); // add link of current tab commands.addUserCommand(['addlinkpad'],' addlinkpad ', function (){ liberator.plugins.exLinkPad.add(buffer.URL, buffer.title); } ); return { add: function add(url, name) { linkpad.set(url, name); liberator.echomsg("Added Link Pad '" + name + "': " + url, 1); }, //del: function del(url) //{ // linkpad.remove(url); // liberator.echomsg("Delited Link Pad : " + url, 1); //}, open: function open(url, where) { if (url) { liberator.open(url, where); linkpad.remove(url); } else { liberator.echoerr("Error!:not set"); } }, list: function list(context){ //filter = context.filter.toLowerCase(); context.title = ["Link Pad", "URL"]; let i = 1; links = []; for(let [url,] in linkpad){ let title = i++ + ':' + linkpad.get(url); //if(title.indexOf(filter) == 0) links.push([title, url]); } return [0, links]; } }; })();
なにこれ?
vimperatorのQuickMarkと同様,firefoxに新たにブックマーク領域を追加するものである。
QuickMarkとこのLinkPadの違いは,前者はオペラのクイックダイアルのような使い方に向いていて,これはネットスケープのLinkPadのような使い方に向いている。
使い方
これを適当な名前(linkpad.jsとか)で保存し,プラグインフォルダに入れると,下記の二つのコマンドが追加される。
:linkpad
:linkpad と打てばLinkPadに登録されているサイトを補完領域に表示してくれる:
この引数は数字だけが意味があるので,単に :linkpad 2としても上記と同じ動作をする。
:addlinkpad
LinkPadに現在開いているサイトを登録してくれる
設定
rcには例えば次のような設定をしておくと:
noremap m :linkpad<Space> noremap M :addlinkpad<cr>
mでLinkPad表示,Mで追加となる。