なんか面倒臭いなー、と思ったらソースが Github で公開されているっぽいので修正して Pull Reqest を投げてみたら merge されたやったー、というお話。
環境
Mac OSX 10.9.5
Firefox 32.0.3
Vimperator(22faadf35b32fb7d31cac323a5206c104efc4b6f)
Vimperator の key handling
ソース読んでたら、打たれたキーは最終的に toSttring される みたいで、 ctrlKey は押されているかー、とかkeyCode は何かー、とかチェックしている様子。
それで整形されて String になって処理が続いていく様子。たぶん map とかを replce するために文字列化とかしているのかな。
それはさておき、Mac の Firefox にはバグがあるっぽくて、コントロールを押すと keyCode が変わってしまうので、その場で対処している、とのこと。
Firefox in Mac での KeyCode 調べと修正
window.addEventListener('keypress', function(e) { window.hoge = e; }, false);とかして今の Mac の keyCode を見るとこんなんだった。
] keypress Control { target: <body#gsr.hp>, key: "[", charCode: 0, keyCode: 219 }
- keypress Control { target: <body#gsr.hp>, key: "-", charCode: 0, keyCode: 173 }
_ keypress Control-Shift { target: <body#gsr.hp>, key: "_", charCode: 0, keyCode: 173 }
\ keypress Control-Shift { target: <body#gsr.hp>, key: "_", charCode: 0, keyCode: 173 }
^ keypress Control-Shift { target: <body#gsr.hp>, key: "^", charCode: 0, keyCode: 54 }
んで C-[ でちゃんと insert も抜けるようになったし
inoremap <C-]> ]]]
inoremap <C--> ---
inoremap <C-_> ___
inoremap <C-\\> \\\
inoremap <C-^> ^^^
0 件のコメント:
コメントを投稿