ESC 키를 눌러서 영문으로 전환하기

1 min read

VIM에서 입력 모드에서 한글로 주석을 입력하고, ESC키를 눌러서 일반 모드로 전환할 경우에 입력기가 한글로 설정이 되어 있어서 커맨드가 작동하지 않는 문제가 있습니다.

null

윈도우 환경에서는 AutoHotKey 스크립트를 사용했었는데, 맥에서는 Hammerspoon으로 문제를 해결할 수 있었습니다.

Hammerspoon 설치

Hammerspoon은 AHK와 비슷한 역할을 하는 앱입니다. 홈페이지에서 최신 버전을 다운로드합니다. 압축을 풀고 응용 프로그램으로 앱을 복사한 뒤 실행하면 맥북 상단에 망치숟가락 아이콘이 표시됩니다.

null

시스템 환경설정 > 보안 및 개인 정보 보호손쉬운 사용 항목에서 Hammerspoon의 권한을 허용합니다.

null

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 메뉴를 선택해서 스크립트를 활성화 합니다.

이제 입력 모드에서 한글을 입력하다가 일반 모드로 전환할 경우, 정상적으로 작동하는 것을 확인할 수 있습니다.

참고

© 2021 Raegon Kim