OSX По умолчанию функция kill (ctrl + k
) и yank (ctrl + y
) не работает при использовании тайского или корейского режима ввода.Другие привязки клавиш для движений курсора также отключены.
Поэтому я пытаюсь эмулировать функцию с помощью Hammerspoon
.Но я не смог выяснить, как вызвать функцию kill
и 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, но они просто используют нажатия клавиш для этой функции.
Есть ли способ вызвать kill и yank напрямую из сценария Hammerspoon?
Редактировать 2019/02/ 21
Если Karabiner
или другие приложения могут выполнить то же поведение, я собираюсь использовать его.