Firefoxのタブ操作を便利にしてくれるKeySnailプラグインTanythingがとっても便利になりました。


こないだ書いてみたKeySnailプラグインTanything。
Firefoxでタブをanythingっぽく操作するKeySnailプラグイン、Tanythingをリリースしました。
これを書いた後でKeySnailにまたまた便利そうな機能が実装されてしまいました。新しい機能とは開いてるプロンプトごとに独自のキーバインドを設定できる、言うなればローカルキーバインド機能。
詳しくは、開発者のmoozさんが説明してくれているのでそちらを見てもらった方が良いかもです。プラグインシステムといい、今回の機能といい、とんでもない速度で便利になっていってます。
新しくなった Twitter クラアイントプラグインは操作性が格段に向上
新しいもの好き、熊本弁でいうところの”わさもん”としてはいぢらずにいれるでしょうか、いえ、いれません。
というわけで、Tanythingにもこのローカルキーバインド機能を追加してみました。
んが、実はちょっといけてないところが残っていて、とりあえずプレビュー版というか、こんな感じですってことでまとめときます。

Tanythingって

Firefoxでタブを操作するためのプラグインです。キーバインドでタブを開いたり、閉じたり、移動したり、さらにはタブのURLとかタイトルをクリップボードにコピーとかしてくれます。
詳しいところは以下の日記を見てください。
Firefoxでタブをanythingっぽく操作するKeySnailプラグイン、Tanythingをリリースしました。

使い方

まずは、KeySnailがないと始まりません。ローカルキーバインド機能は新しく追加された機能なので、バージョン1.2.7以上のものをインストールする必要があります。
Home – keysnail – GitHub
次にプラグインのサイトからTanythingをインストールしましょう。
Plugin – keysnail – GitHub
これでインストール作業は完了。次にTanythingにキーバインドをあてるために.keysnai.jsに次のように書いておきましょう。以下の例ではC-aにキーバインドを割り当ててます。

[js]
key.setViewKey(‘C-a’, function (ev, arg) {
ext.exec("tanything", arg);
}, ‘タブを一覧表示’, true);
[/js]

これでCtrlを押しながらaキーを押すと次のような画面になるはずです。

次にローカルキーバインドの設定をします。参考までに僕の設定を晒しておきます。次のようなコード.keysnail.jsのPRESERVEエリアに書いておきます。
キーバインドを替えたいときは左側のダブルクォーテーションの中を適宜替えておけば良いです。

[js]
plugins.options["tanything_opt.keymap"] = {
"C-z" : "prompt-toggle-edit-mode", //ローカルキーバインドモードを抜けて編集モードに移行
"SPC" : "prompt-next-page",        //次のページの移動
"b" : "prompt-previous-page", //前のページに移動
"j" : "prompt-next-completion", //次のアイテムに移動
"k" : "prompt-previous-completion", //前のアイテム移動
"g" : "prompt-beginning-of-candidates", //最初のアイテムに移動
"G" : "prompt-end-of-candidates", //最後のアイテムに移動
"D" : "prompt-cancel", //プロンプトを消す
tanything specific actions
"O" : "localOpen", //選択したタブを開く
"q" : "localClose", //選択したタブを閉じる
"p" : "localLeftclose" //選択したタブの左にあるタブをすべて閉じる
"n" : "localRightclose", //選択したタブの右にあるタブをすべて閉じる
"a" : "localAllclose", //選択したタブ以外をすべて閉じる
"d" : "localDomainclose", //選択したタブ以外のタブを全て閉じる
"u" : "localClipUT", //選択したタブのタイトルとURLをHTMLタグつきでコピー
"U" : "localClipU", //選択したタブのURLをHTMLタグつきでコピー
"e" : "localMovetoend" //選択したタブを末尾に移動
};
[/js]

これで全ての設定は完了。
タブのプロンプトを開いて、例えば選択したタブ以外のタブを全て消したいときはaキーを押せばがががーっと消してくれると思います。

現在の問題点

今回のバージョンでは、プロンプト内での連続した操作がうまくいきません。例えば、任意のタブを連続して閉じようとした場合、1回目はうまく動作しますが、2回目以降は選択したタブと別のタブがずれて消されてしまいます。ということで、操作を繰り返してしようとする場合、毎回プロンプトを閉じないといけないとゆーショボショボ仕様です。
これはしょぼすぎる。うーんどうかしたいのですが、今のところいいアイデアがありません。こういう風にしたらー?なアイデアあったら教えてくださいまし。

20091226追記

KeySnail開発者のmoozさんにいろいろと改良を加えていただいた結果、すこぶる使いやすいプラグインになりました。同じプロンプト内で連続的に複数のタブを閉じることも可能となり、選択したタブをブックマークに追加するなど新しいアクションも追加されました。
この便利さは、なかなか口で伝えることができないのでとりあえず使ってみてください。快適にタブの編集ができること間違いなしです。

  • Hogehogehoge

    githubのアカウントを持ってないのでこちらで報告させてもらいます。Win Vista / Firefox4 でTanythingを使っているのですが、Tanythingでタブを閉じるなどの操作をした後にEnterでプロンプトを閉じると、表示している全てのタブが閉じてしまったり、プロンプトがバグってしまいます。Escを使うと問題ないのですが。。。

  • Hogehogehoge

    githubのアカウントを持ってないのでこちらで報告させてもらいます。Win Vista / Firefox4 でTanythingを使っているのですが、Tanythingでタブを閉じるなどの操作をした後にEnterでプロンプトを閉じると、表示している全てのタブが閉じてしまったり、プロンプトがバグってしまいます。Escを使うと問題ないのですが。。。

  • Pingback: FireFoxをEmacsに。KeySnailのすすめ2 プラグイン編 « DS LAB.()