OSX 默认的 kill( ctrl + k
) 和 yank( ctrl + y
) 函数在使用泰语或韩语输入模式时不起作用。光标移动的其他键绑定也被禁用。
所以我试图通过使用来模拟该功能Hammerspoon
。但我不知道如何从hammerspoon调用kill
and函数。yank
我只能通过这段代码实现光标移动。
local EmacsKeyMap = hs.hotkey.modal.new()
local function sendKey(mods, key)
return function()
hs.eventtap.keyStroke(mods, key, 10000)
end
end
local function bindToEmacsKeyMap(mods, key, func)
EmacsKeyMap:bind(mods, key, func, nil, func)
end
bindToEmacsKeyMap({'ctrl'}, 0, sendKey({'command'}, 'left')) -- C-a
bindToEmacsKeyMap({'ctrl'}, 14, sendKey({'command'}, 'right')) -- C-e
bindToEmacsKeyMap({'ctrl'}, 11, sendKey({}, 'left')) -- C-b
bindToEmacsKeyMap({'ctrl'}, 3, sendKey({}, 'right')) -- C-f
bindToEmacsKeyMap({'ctrl'}, 45, sendKey({}, 'down')) -- C-n
bindToEmacsKeyMap({'ctrl'}, 35, sendKey({}, 'up')) -- C-p
bindToEmacsKeyMap({'ctrl'}, 4, sendKey({}, 'delete')) -- C-h
EmacsKeyMap:enter()
我用谷歌搜索了一些用于 emacs 仿真的hammerspoon 脚本,但它们只是使用按键来实现该功能。
有没有办法直接从 Hammerspoon 脚本中调用 kill 和 yank?
编辑 2019/02/21
如果Karabiner
或其他应用程序可以完成相同的行为,我将使用它。