티스토리 뷰

반응형

문제

vim을 사용하면 입력모드에서 주석이나 한글 입력 후 esc를 누르면 노말모드에서 한글이 인식되서 hjkl가 아니라 ㅗㅓㅏㅣ가 나와 동작하지 않는 문제가 있다.

처음에는 좀 귀찮지만 매번 한/영 변환으로 그냥 사용했다가 매번 반복되니 안되겠다 싶어서 방법을 찾아봤다.

찾아보니 여러가지 방법이 있었는데 개인적으로 karabiner를 쓰고 있기도 해서 아래 매핑 방법을 적용했다.

Karabiner 사용

아래 방법은 특정 프로그램에서 esc를 누르면 자동으로 입력 소스를 영어로 바꿔주는 것이다.

karabiner 사용법은 다른데서 많이 찾아 볼수 있으므로, 설치되었다고 가정하고

~/.config/karabiner/assets/complex_modifications 여기 경로에 새로운 json 파일을 만들어준다.

파일이름은 상관없고 나는 escape_to_en.json으로 만들었다.

아래 내용을 복붙해주면 된다.

중간에 bundle_identifiers 가 있는데, 이 부분이 해당 매핑을 사용할 프로그램을 지정해 주는것이다. vim을 사용하는 프로그램을 적어주면 된다. 아래는 terminal, iterm2, intellij, pycharm 등을 적었다.

명시된 프로그램들을 사용할 때가 아니면 esc를 눌러도 영어로 전환되지 않기 때문에 다른데서는 문제가 없다.

{
  "title": "Convert to en when ESC",
  "rules": [
    {
      "description":"Convert to en when ESC",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "escape",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "escape"
            }
          ],
          "to_after_key_up": [
            {
              "select_input_source": {
                "language": "en"
              }
            }
          ],
          "conditions": [ 
            { 
              "type": "frontmost_application_if",
              "bundle_identifiers": [
                "^com\\.apple\\.Terminal$",
                "^com\\.googlecode\\.iterm2$",
                "^co\\.zeit\\.hyperterm$",
                "^co\\.zeit\\.hyper$",
                "^io\\.alacritty$",
                "^net\\.kovidgoyal\\.kitty$", 
								"^com\\.jetbrains\\.goland$",
								"^com\\.jetbrains\\.intellij$",
								"^com\\.jetbrains\\.intellij\\.ce$",
								"^com\\.jetbrains\\.webstorm$",
								"^com\\.jetbrains\\.pycharm$"
              ]
            }
          ]
        }
      ]
    }
  ]
}

이제 karabiner에서 위 설정파일을 등록하면 된다.

complex modifications에서 Convert to en when ESC를 Enable을 눌러 추가해주면 된다.

참고

[1] https://github.com/johngrib/simple_vim_guide/blob/master/md/with_korean.md

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday