KeySnail使ってFirefoxをw3mっぽく使いたい


コピペ厨の僕は、ネット上のコードとかをコピーすることがよくあります。
そーいうときにFirefoxのキャレットブラウズモードを使ったりするわけですが、複雑なサイトとかだとキャレットがどこにいったかわからなくなってかなりイライラします。こういうときにw3mって便利だよなーとか思うのですが、そのためだけにw3m開くのも面倒くさいのでFirefoxでどうにかしたいなー、あーでも使いづらい。
今回は、KeySnailというアドオンを利用してそのイライラをちょっとだけ和らげます。

その前にKeySnailについて

KeySnailとは、FirefoxをEmacsにしてくれるアドオンです。とりあえず普段EmacsキーバインドになれていてEmacsから一歩も外に出たくないという人はちょっと外に出てでも入れておくべきです。そうでない人も入れておくと幸せになれるので入れておいた方がいいと思います。
何個か紹介記事を載せときます。

キャレットモードにキーバインドあてる

Firefoxでは、キャレットブラウズモードをスタートさせるのにF7キーがあてられてるのですが、hhkユーザの僕としては、ファンクションキーなんてとこにあてられたら面倒くさいことこの上ないので、別のキーにあてときます。以下のスクリプトを.keysnail.jsなんかに書いときましょう。今回はvimpっぽくiにあてています。

[js]
function remove_Caret() {
prefs = Components.classes[‘@mozilla.org/preferences-service;1’].getService(Components.interfaces.nsIPrefService).getBranch(null);
prefs.setBoolPref(‘accessibility.browsewithcaret’, false);
}

function set_Caret() {
prefs = Components.classes[‘@mozilla.org/preferences-service;1’].getService(Components.interfaces.nsIPrefService).getBranch(null);
prefs.setBoolPref(‘accessibility.browsewithcaret’, true);
}

ext.add("set_Caret", set_Caret,
M({ja: "キャレットモード",
en: "caret_mode"}));

ext.add("remove_Caret", remove_Caret,
M({ja: "キャレットモードをキャンセル",
en: "caret_mode"}));

key.setViewKey(‘i’, function (aEvent) {
ext.exec("set_Caret", arg);
}, "キャレットモード", true);

key.setCaretKey(‘i’, function (aEvent) {
ext.exec("remove_Caret", arg);
}, "キャレットモードをキャンセル", true);

[/js]

サイトをすんごく省略させる

後は、サイトの中で必要ないところは消します。これにはclippableというブックマークレットをちょこちょこっといぢってキーバインドあてます。

Readability Mod

例えば、うちのサイトだとこんな感じになるはずです。

before
before
after
after

これだと、編集作業がかなりやりやすいですね。

[js]
function readability (){
x=content.document.createElement(‘SCRIPT’);
x.type=’text/javascript’;
x.src=’http://brettterpstra.com/share/readability.js?x=’+(Math.random());
content.document.getElementsByTagName(‘head’)[0].appendChild(x);
y=content.document.createElement(‘LINK’);
y.rel=’stylesheet’;
y.href=’http://brettterpstra.com/share/readability.css?x=’+(Math.random());
y.type=’text/css’;
y.media=’screen’;
content.document.getElementsByTagName(‘head’)[0].appendChild(y);
}

ext.add("readability", readability,
M({ja: "readabilityスタート",
en: "start readability"}));

key.setGlobalKey(["C-c", "q"], function (ev, arg) {
ext.exec("readability", arg);
}, "readability", true);

[/js]

設定めんどくさいという人は

簡単に導入するためにプラグインにしてみました。
まずは、githubからmisc.ks.jsをインストールします。

myuhe’s KeySnail_Plugin at master – GitHub

次にキーバインドをあてます。以下のスクリプトを.keysnail.jsに追加しときます。
[js]
key.setViewKey(‘i’, function (aEvent) {
ext.exec("set_Caret", arg);
}, "キャレットモード", true);

key.setCaretKey(‘i’, function (aEvent) {
ext.exec("remove_Caret", arg);
}, "キャレットモードをキャンセル", true);

key.setGlobalKey(["C-c", "q"], function (ev, arg) {
ext.exec("readability", arg);
}, "readability", true);
[/js]

最後に

これで、また一つFirefoxが便利になりました。
編集もやりやすくなるし、実はboss keyな使い方もできるかもしれません。