Vimlike Smoozieeがかなり機能を絞って実装しているのは、時間的、能力的な制約も大きいのですが、あまり複雑にしないことで、なるべくヘビーユーザーでない人にも使ってもらえるようにと考えているところもあります。
Vimperatorは強力にカスタマイズできてとても便利です。ただ、インストールするといきなりアドレスバーが消えてコマンド入力になるなど、ヘビーユーザーでないとなかなか近寄りがたいところがあると思います。そういったとっつきにくさから、一般ユーザーがこの便利さを享受できないのは大変もったいないので、Vimperatorの便利さを一般ユーザーにもと思うわけです。
ということで、Vimlike Smoozieeのデモ動画を作ってみました。
ちなみに、このデモでは、キーボードの入力したキーを表示するGreasemonkeyスクリプト、FLASH KEYを少し変更してExtensionとしてインストールして使っています。FLASH KEYは動作がかなり素敵です。キーボード操作を画面に表示したいときにおすすめです。
現在のバージョンは0.0.9で、fキーで呼び出すクイックヒントと呼ばれる機能も実装しはじめています。
クイックヒントについては、もう少しできてから詳しく書こうと思っていますが、ChromeのJavascriptが早いからか、ヒントの表示がすごく速いです。
Firefoxだと、どうしてもわずかに間が空いてしまいますが、ヒントを出すときには頭の中にはもう遷移先に気持ちがあるので、そのわずかの間がじれったく感じてしまいます。なので、このスピードはとてもありがたいです。
Chromeにはもう少しシェアをとってもらって、FirefoxやIEなど他のブラウザに、動作スピード面でのプレッシャーをガンガン与えてほしいですね。
"Ctr-["の対応していただきありがとうございました
返信削除"gg"の効かない件、失礼かとは思いましたが
書き足してみました
長くなるかもと思ってこちらの方にコメントさせてもらいました
"gi"については動いていました
"gg"についてはgModeの時点で一度
document.removeEventListener('keydown', initKeyBind, false);
としてinitKeyBindを切らないと二度目の"g"で
document.addEventListener('keydown', gHandler, false);
のgHandlerが効いていませんでした
なので
gHandler -> scrollToTopの時点,
gHandler -> "g", "i"以外のpressedKeyの場合の時点で
document.addEventListener('keydown', initKeyBind, false);
を足したら動きました
もっと良い方法があるかもしれません....
///
function scrollToTop(){
scroll(0, -document.documentElement.scrollHeight);
document.removeEventListener('keydown', gHandler, false);
document.addEventListener('keydown', initKeyBind, false);
}
function gMode(){
document.removeEventListener('keydown', initKeyBind, false);
document.addEventListener('keydown', gHandler, false);
}
function gHandler(e){
addKeyBind( 'g', 'scrollToTop()', e );
addKeyBind( 'i', 'focusFirstTextInput()', e );
var pressedKey = get_key(e);
if (pressedKey != 'g' && pressedKey != 'i'){
document.removeEventListener('keydown', gHandler, false);
document.addEventListener('keydown', initKeyBind, false);
}
}
///
遅くなりましてすみません。
返信削除確かにおっしゃる様になりそうですね。
教えていただいたように直してアップしてみました。
スクロールのときにつづき、またまたコードまでいただいてしまってすみません。
というか、以前もコメントいただいた方だったんですね。ありがとうございます。