VIM에서 입력 모드에서 한글로 주석을 입력하고, ESC
키를 눌러서 일반 모드로 전환할 경우에 입력기가 한글로 설정이 되어 있어서 커맨드가 작동하지 않는 문제가 있습니다.
윈도우 환경에서는 AutoHotKey 스크립트를 사용했었는데, 맥에서는 Hammerspoon으로 문제를 해결할 수 있었습니다.
Hammerspoon 설치
Hammerspoon은 AHK와 비슷한 역할을 하는 앱입니다. 홈페이지에서 최신 버전을 다운로드합니다. 압축을 풀고 응용 프로그램
으로 앱을 복사한 뒤 실행하면 맥북 상단에 망치숟가락
아이콘이 표시됩니다.
시스템 환경설정 > 보안 및 개인 정보 보호
의 손쉬운 사용
항목에서 Hammerspoon
의 권한을 허용합니다.
init.lua 스크립트 작성
망치숟가락
아이콘을 누르고 Open Config
메뉴를 선택하면 ~/.hammerspoon/init.lua
스크립트 파일이 열립니다. 다음 내용을 작성합니다.
-- init.lua
local english = "com.apple.keylayout.ABC"
local escapeBind
function setEnglish()
local source = hs.keycodes.currentSourceID()
if not (source == english) then
hs.keycodes.currentSourceID(english)
end
escapeBind:disable()
hs.eventtap.keyStroke({}, 'escape')
escapeBind:enable()
end
escapeBind = hs.hotkey.new({}, 'escape', setEnglish):enable()
hs.hotkey.bind({'ctrl'}, 33, setEnglish)
ESC
키를 누르거나<Ctrl-[>
키를 누를 경우에 현재 활성화된 입력기가 영어가 아니면 영어로 전환하고,ESC
를 다시 입력하는 스크립트입니다.ESC
입력이 반복되는 것을 막기 위해escapeBind
를 사용하고 있습니다.
다시 망치숟가락
아이콘을 누르고 Reload Config
메뉴를 선택해서 스크립트를 활성화 합니다.
이제 입력 모드에서 한글을 입력하다가 일반 모드로 전환할 경우, 정상적으로 작동하는 것을 확인할 수 있습니다.