Officeの類でemacsバインドじゃないと編集がくるしい、ということで、これまでkarabiner にお世話になっていたのだが、Sierraでは使えない。Karabiner Elementという後継プロジェクトがあるのだが、こちらはまだマチュアではなく、単体キーの入換えしかできない。
ということで、
こちらを参考に
HammerSpoolなるものを入れてみた。luaで設定ファイルを書くというのがなんともアレだが。。とりあえず、カーソル移動と行頭行末、バックスペースだけなんとかした。これだけできれば発狂しないですむだろう。
local function keyCode(key, modifiers)
modifiers = modifiers or {}
return function()
hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), true):post()
hs.timer.usleep(1000)
hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), false):post()
end
end
local function remapKey(modifiers, key, keyCode)
hs.hotkey.bind(modifiers, key, keyCode, nil, keyCode)
end
remapKey({'ctrl'}, 'b', keyCode('left'))
remapKey({'ctrl'}, 'n', keyCode('down'))
remapKey({'ctrl'}, 'p', keyCode('up'))
remapKey({'ctrl'}, 'f', keyCode('right'))
remapKey({'ctrl'}, 'e', keyCode('end'))
remapKey({'ctrl'}, 'a', keyCode('home'))
remapKey({'ctrl'}, 'h', keyCode('delete'))