Hatena::Groupvimperator

vimpめも

 | 

2010-03-04

無変換キー、CapsLockキーなどをmap出来るようにするプラグインをvimp2.2に対応させた

01:31 | はてなブックマーク - 無変換キー、CapsLockキーなどをmap出来るようにするプラグインをvimp2.2に対応させた - vimpめも

Re: vimperatorrcでキーコードを指定してmapする - hogelogの日記 - vimperatorグループ

http://vimperator.g.hatena.ne.jp/hogelog/20090510/1241970179

の方法がvimp2.2では使えなかったので、自分で書いた。既出かも。

ちなみにvimp2.2リリース以降のnightlyは未試用。


コード

// extraKeysForMapping.js
{
const extra_keys = [
        [ 28, ["Henkan"]],
        [ 29, ["Muhenkan"]],
        [ 242, ["Katakana"]],
        [ 240, ["CapsLock", "Caps"]]
];
let [_code_key, _key_code] = liberator.eval('[code_key, key_code]', events.destroy);
extra_keys.forEach(function([code, names]){
        _code_key[code] = names[0];
        for(let [, name] in Iterator(names))
            _key_code[name.toLowerCase()] = code;
});
let extra = uneval([_code_key, _key_code]);
liberator.eval('[code_key, key_code] = ' + extra, events.destroy);
}

動作

map <C-Caps> :js alert('ok')<CR> // Ctrl+CapsLockを入力した時に、'ok'というアラートが表示されるようになる
unmap <C-CapsLock>
map <C-Caps><C-Caps> :js alert('successful')<CR> // Ctrl+CapsLockを二回入力した時に、'successful'というアラートが表示されるようになる
map <C-Caps>foo :js alert('foo')<CR> // 同様
 |