一番やりたいことは「Office (Word)でEmacsライクなキーバインディングを実現したい」なんですが、色々調べた結果、Hammperspoonを使うのが簡単そうでした。
https://qiita.com/swdyh/items/04f7da8c1209a067add5
このサイトやこの元の引用サイトを調べて下記のように初期設定しました(LUA言語でinit.luaに記載しています)。
質問したいことは、下記コードでほとんどやりたいことは実現できているのですが、最後のCtrl-kで、
「カーソル以降の削除と削除したものをクリップボードにコピーするが」実現できていません。
調べると、 keyCode('e', {'shift', 'ctrl'})() ここが働いていないようです。
何か解決方法やアドバイスを頂ければ助かります!
宜しくお願いいたします。
Lua
1local function keyCode(key, modifiers) 2 modifiers = modifiers or {} 3 return function() 4 hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), true):post() 5 hs.timer.usleep(1000) 6 hs.eventtap.event.newKeyEvent(modifiers, string.lower(key), false):post() 7 end 8end 9 10local function remapKey(modifiers, key, keyCode) 11 hs.hotkey.bind(modifiers, key, keyCode, nil, keyCode) 12end 13 14local function disableAllHotkeys() 15 for k, v in pairs(hs.hotkey.getHotkeys()) do 16 v['_hk']:disable() 17 end 18end 19 20local function enableAllHotkeys() 21 for k, v in pairs(hs.hotkey.getHotkeys()) do 22 v['_hk']:enable() 23 end 24end 25 26local function handleGlobalAppEvent(name, event, app) 27 if event == hs.application.watcher.activated then 28 -- hs.alert.show(name) 29 if name ~= "iTerm2" then 30 enableAllHotkeys() 31 else 32 disableAllHotkeys() 33 end 34 end 35end 36 37appsWatcher = hs.application.watcher.new(handleGlobalAppEvent) 38appsWatcher:start() 39 40-- カーソル移動 41remapKey({'ctrl'}, 'f', keyCode('right')) 42remapKey({'ctrl'}, 'b', keyCode('left')) 43remapKey({'ctrl'}, 'n', keyCode('down')) 44remapKey({'ctrl'}, 'p', keyCode('up')) 45 46-- テキスト編集 47remapKey({'ctrl'}, 'w', keyCode('x', {'cmd'})) 48remapKey({'ctrl'}, 'y', keyCode('v', {'cmd'})) 49 50-- コマンド 51remapKey({'ctrl'}, 's', keyCode('f', {'cmd'})) 52remapKey({'ctrl'}, '/', keyCode('z', {'cmd'})) 53remapKey({'ctrl'}, 'g', keyCode('escape')) 54 55-- ページスクロール 56remapKey({'ctrl'}, 'v', keyCode('pagedown')) 57remapKey({'alt'}, 'v', keyCode('pageup')) 58remapKey({'cmd', 'shift'}, ',', keyCode('home')) 59remapKey({'cmd', 'shift'}, '.', keyCode('end')) 60 61-- カーソル以降を削除しクリップボードにコピーする 62local function keyCtrlK() 63 keyCode('e', {'shift', 'ctrl'})() 64 keyCode('x', {'cmd'})() 65end 66hs.hotkey.bind({'ctrl'}, 'k', keyCtrlK, nil, keyCtrlK)
あなたの回答
tips
プレビュー