firefoxをEmacsにしてくれるKeySnailがすごすぎる
- 2009.09.27
- twitter 日記
- anything.el, Emacs, firefox, google, javascript, KeySnail

Emacsでコード書いたり、日記書いたりしているときに、ネットで調べものしようとマウスに手を持っていくのが鬱陶しくなったりします。
というわけで、Emacsにw3mなぞ入れてみたのですが所詮はテキストブラウザ、昨今のリッチなサイトは表示がグダグダに乱れてしまって、結局firefox使ったりしてました。はーvimperatorいいなーでもvimだしな、とか思ってたらすごいアドオンがありました。
KeySnail
KeySnailとは、firefoxをEmacsライクにしてくれるアドオン。詳しい使い方は作者のmoozさんが詳しく説明してくれています。
Emacs ユーザや keyconfig ユーザにおすすめのアドオン KeySnail – リタマス
詳しい説明は、moozさんのところを見ていただくとして、ここがすごいと思ったところを書いてみます。
Emacsライクなキーバインドでサクサク
小指がつるエディタなどと揶揄されるEmacsですが、なれてしまうとその便利なキーバインドから離れられなくなります。なんですが、vimperatorは、当然vimっぽいキーバインドなのでいろいろいぢっても満足できるもんにはなりません。KeySnailは、基本は使う人がキーバインドを設定するというのが原則みたいですが、デフォルトでEmacs/w3m風のキーバインドが設定されてあります。
Emacs使いの人は、とりあえずいつものキーバインドで一通り動くと思います。
Emacsライクな機能もたくさん
実は、キーバインドをEmacs風にしてくれるアドオンならfiremacsというのがあるのですが、機能がそれしかありません。KeySnailはfiremacsを参考に作られているのですが、そこから実にEmacsらしい機能がたくさん搭載されています。キルリングなんかも便利なんですが、anything.elライクな使い方ができるprompt.selector(vimperatorにもあるみたいですけど)がすこぶる便利。今のところ、絞り込みができる対象はブックマークだけですが、この機能を使って履歴とか開いているタブとかを絞り込みできるようになるとかなり便利になるかもしれません。
自分でどんどんカスタマイズできる
Emacs使ってる人で.emacsに何も書いてない人なんてほとんどいないんではないでしょうか?自分が使いやすいようにカスタマイズすることこそEmacsの醍醐味です。KeySnailでも、自分でガンガンカスタマイズできます。やり方はアドオンをいれて再起動するときにできる初期化ファイルに、javascriptを書き込んでいくだけです。
というわけで、早速カスタマイズしていきます。まずは、見ているページのタイトルとURLを取得してhrefタグと一緒にクリップボードにコピーしてみます。アドオンだとURL+とかが有名ですね。
といっても、firefoxのいぢり方もjavascritもなーんも知らないので、次のサイトを参考に書きました。
10分で作るFirefoxアドオン – Slow Dance
でわ、ソースコード。次のコードを初期化ファイルの末尾にでも張り付けましょう。w3mちっくに”u”でURLのみをコピー、”U”でURLとタイトルをコピーします。
[js]
key.setViewKey(‘U’, function () {
var w = window._content;
var d = w.document;
var txt = ‘<a href=”‘ + d.location.href + ‘”>’ + d.title + ‘</a>’;
const CLIPBOARD = Components.classes[“@mozilla.org/widget/clipboardhelper;1″].getService(Components.interfaces.nsIClipboardHelper);
CLIPBOARD.copyString(txt);
}, ‘タイトルとURLコピー’);
key.setViewKey(‘u’, function () {
var w = window._content;
var d = w.document;
var txt = ‘<a href=”‘ + d.location.href + ‘”>’ + ‘</a>’;
const CLIPBOARD = Components.classes[“@mozilla.org/widget/clipboardhelper;1”].getService(Components.interfaces.nsIClipboardHelper);
CLIPBOARD.copyString(txt);
}, ‘URLコピー’);
[/js]
簡単ですね。javascriptに詳しい人ならガンガンカスタマイズできるんではないでしょうか。
あわせて使いたいアドオン
KeySnailだけでもかなり便利ですが、他のアドオンと併用するとさらに便利になりますよ。
●LoL
vimperatorのヒントモードにあたる機能はkeysnailにはありません。LoLはヒントモードにあたる機能をもつアドオン。キーバインドも自在にカスタマイズできるので、すいすいリンクから飛んでいけます。
LoL :: Add-ons for Firefox
●Hide Caption
KeySnailを使っていくとこれまで置いていたツールバーとかアイコンがいらないことに気づいてきます。そこで、このアドオン。ツールバーとタイトルバーを非表示にしてくれます。画面の小さいパソコンなどでも便利に使えますね。
Hide Caption :: Add-ons for Firefox
●Omnibar
KeySnailにはロケーションバーとサーチバーに移動するショートカットがデフォルトで指定されていますが、二つとも表示させておくと、結構スペースとってしまうので邪魔です。いっそのことGoogle chromeみたいにあわせて使いたいものです。Omnibarはそれを叶えてくれるアドオンです。
Omnibar :: Add-ons for Firefox
vimperatorの牙城は崩せるか
これまで、firefoxのキーボード操作環境はvimperatorの独壇場、Emacsユーザは歯がゆい思いをしてきたわけですが、とうとう素晴らしいアドオンが出てきました。
まだ、vimperatorが先んじている部分も多いですが、プラグインみたいなものがどんどん出てくるとその差も埋まっていきそうです。というわけで、javascriptバリバリ書けるEmacsユーザの方はガンガン書いて、firefoxをどんどん便利にしませう。
Firefox Hacks Rebootedが発売されました!!
開発者であるmoozさんがKeySnailについて詳しく書かれています。
KeySnailについて詳しく知りたい方や、アドオン開発に興味のある方、おすすめです。
[tmkm-amazon]4873114977[/tmkm-amazon]
20091001追記
調子こいてtwitterに投稿する関数も書いてみました。そちらもあわせてどぞ。
Firefox via KeySnailでtwitterに投稿するjavascript
-
前の記事
今週の気になるアレSeptember 24th 2009.09.24
-
次の記事
python in Emacs環境の整備__基礎環境編__ 2009.09.29