2009年9月19日土曜日

ChromeをVim風にキーボード操作する拡張 その2 はてなブックマーク

※最新版をGoogle Codeにアップしました。今後はこちらで更新する予定です
http://code.google.com/p/vimlike-smooziee/




前回のエントリーは、思ってもみないほど多くの人に見ていただけたようで驚きました。(といってもあくまでこのブログ基準です。)
やはりというべきか、ChromeでVimのように操作したいという需要は大きいんですね。

また変更を加えて、非常に快適な動作をするようになったので、公開してみます。

インストール


Vimlike_smooziee 0.0.2 (インストール)(ソース

※削除しました。こちらから最新のものをインストールしてください。

Vimperatorの_smoooziee.jsというj、kキーのスクロールをスムーズにする僕の愛用プラグインがあるのですが、今回はその動作も組み込んで、かなり自分好みにパッケージしています。

もし従来の動作がいいという場合は、ソースのコメントアウトしてるところを使ってもらえばすぐに動かせると思います。
smoozieeの動作も、ソース上部のinterval(スクロールの速度)やmoment(スクロール幅)を調整して好みの動作にすることもできます。(本当は外部ファイルで設定できればいいと思うのですが、やり方がわからないので。)

※もし前回のVimlike-0.0.1を入れてもらった人がいたら、一度chrome://extensions/からuninstallしてもらったほうがいいかもしれません。次回もし公開する場合は、配布方法も調べてもう少しちゃんとしようと思ってます。Vimlikeという名前も、前回参照したソースの名前をそのまま使ってしまっているので、変えるかもしれません。

前回からの変更点



  • j、kキーでスムーズスクロール。

  • 「戻る」「進む」をz、xからH、Lに変更。

  • ggでページトップへスクロール。Gでページ終わりへスクロール。

  • giで最初のテキストボックスにフォーカス。Escでフォーカスを解除。

  • テキストボックス内で、C-a、C-e、C-f、C-bでそれぞれ先頭、末尾、1つ進む、1つ戻る


C-aは、先頭に移動したあとで再度C-aを押すと、テキストの全選択となります。
そのほかrでリロード、dでタブを閉じる動作は変わりありません。

今後ほしい機能



  1. Hit-a-Hint

  2. uで閉じたタブを復活

  3. アドレスバーで入力補完の際、カーソルキーではなくTabキーで選択したい(できる?)

  4. C-pで前の(左の)タブに移動、C-nで次の(右の)タブに移動

  5. ziでフォント拡大、zoでフォント縮小

などなど。
特に1はキーボード操作で完結するためには必須で、これがないとはじまらないというくらいのもの。下記の参考サイトでも書かれているようなので、早めに組み込みたいです。
4のC-p、C-nはもともと、それぞれ印刷と新しいウィンドウを開く機能が割り当てられてるのですが、みんな使ってるんですかね。自分はあまり使っていないので上書きしてしまおうかなと。

参考にしたサイト


前回Extensionの作り方で参考にしたブログ筆者の記事。すごくわかりやすい。
先取り! Google Chrome Extensions(第2回 Chrome Extensionsの作り方#1

キーイベントをとる部分は、以下を参考にさせて(使わせて)いただきました。
はじめてのGoogle Chrome拡張、オレオレChromeKeyconfig
SafariとChromeではkeyIdentifierが使えるので素晴らしすぎます

おかげでChromeが快適でメインブラウザになる日も近いんじゃないかというくらいです。ありがとうございます。

最初の技評の記事で紹介されていた本家ドキュメント。あとでゆっくり読まないと。
Google Chrome Extensions: Developer Documentation

このChrome拡張のために必要にせまられてjavascriptをさわっていますが、どうもJavascriptは苦手というかよくわからないです。一度じっくり腰をすえて勉強しないといけないなあ。

2009年9月11日金曜日

ChromeをVim風にキーボード操作する拡張 はてなブックマーク

※最新版をGoogle Codeにアップしました。今後はこちらで更新する予定です
http://code.google.com/p/vimlike-smooziee/




ChromeをVim風に動かしたい


Firefoxのアドオンには、VimperatorというVim風にブラウザを操作してしまおうという大変マニアックなアドオンがあります。これに慣れるとVimperatorの入ってないFirefoxは使えなくなるといわれるほど、素晴らしく便利です。

ただ、Firefoxはどんどん起動が遅くなってしまうので、あくまでFirefoxがメインながらも、キビキビ動いてくれるGoogle Chromeを使用する機会も増えてきていました。

そうなるとやはり、ChromeでもVimperatorを使いたい。それが無理でもせめてVimのようにjキー、kキーでスクロールするだけでも全く使い勝手が違うだろうと思って調べていましたが、

Google Chrome、アドオン機能を開発者向けに解禁

ということで、最新の開発版で動かすことができましたので、作ったものを置いておきます。作ったといっても、既に先人が作っていたものを、ソースそのままで新しい拡張の仕様でまとめただけです。
(2009/9/11時点でのChrome開発版のバージョンは4.0.206.1

インストール


以下の「インストール」のリンクをクリックして保存すると、インストールを促すダイアログが出てくると思いますので、そこで「インストール」を押すとインストールされます。

Vimlike 0.0.1 (インストール)(ソース

※削除しました。こちらから最新のものをインストールしてください。

参考にしたサイト


参考にしたというか、既に書いたように、こちらのサイトのソースをそのまま今のExtensionの仕様でまとめただけです。
動作も同様ですので参照してください。
Google ChromeでVimっぽい動きをさせてみる

Extensionの作り方は以下のサイトを参考にしました。
Chrome Extensionsの作り方 2009/06/25版

開発版だけに度々仕様が変わっていて、以前はUser Scriptsという、FirefoxのGreasemonkeyに似た仕組みだったのですが、今後はExtensionsに一本化するんでしょうかね。
仕様が変わるたびに動かなくなったりすることがよくあるようなのでお気をつけください。

とても便利!


Vimperatorの機能とは差がありますが、j、kのスクロールだけでも、とても便利になりました。
AutoPagerize for Chromeと一緒に使うとより便利で感激です。

なお、アンインストールしたい場合は、
chrome://extensions/

を開くと拡張の一覧が出るので、そこからアンインストールできます。

今後も、もう少し便利になるように改造できないか考えてみたいと思います。まずは「gg」でトップへスクロール、「Shift+g」でページ末尾へスクロール、という機能がほしいかも。