이 블로그 검색

2020년 5월 26일 화요일

VIM 환경을 위한 fcitx 설정. ESC를 누르면, 비활성화 되도록,


fcitx는 비활성화 상태가 1번 IM이다.

데스크탑에서는 "미국 영어(국제, AltGr DeadKey포함)"으로
랩탑에서는 "미국 영어" 또는 "한국어 104key"로 설정한다.



두번째 칸은 원하는 한글입력기로 설정한다. 나 같은 경우는 신세벌 P2방식이다.
(갈마들이를 이용해, 공세벌식 비스무리한걸 숫자키 영역 침범 없이 해결)




한글을 입력하다 보면, vim에서 사용하는 i, o,v, y, p 같은 키들을
노말모드에서 사용하려고 할 때,

한글이 나와서 낭패를 보는 일이 많다.


이것을 해결하는 방법은 여러개가 있다.

1. vim상에서 자체적으로 한글입력을 탑재하게 하여 입력모드시에만
    IM이 작동하도록

2. vim에서 esc버튼을 누르면, xim에 IM disable message를 보내도록 하는 방법

3.  사용하는 IM자체적으로 ESC를 누르면 그렇게 되도록.


아래는 삽질의 결과물들이다.  그냥 2번으로 하자.  vim8이나 nvim을 쓰면서,  python3-dbus 와 같은 패키지가 필요할 것이다. 쉘에다가 바로 보내는 것도 해봤는데, 화면에 글자가 안보이는 등 이상한 결과들이 나온다. 그리고 먼가 filter로 사용할 때 말고는, 제대로 작동이 되는지도 의문이 생겨서 python으로 dbus call을 하도록 한다.

.vimrc에 다음과 같이 입력한다.


흠 특수문자들이 날아가서 그림으로 보이도록 하겠다. 를 쓰면 작업이 많음.


아래쪽은 삽질의 기록이다.


오늘은 3번째 방법을 사용한다.   다른 단점이 있을 수 있다.




먼저 fcitx 설정에 들어가 전역설정으로 들어간다.
 추가 설정보기를 누른다.
아래쪽은 다 의미 없다. 그냥 vim에서는 esc키가 ctrl+[로 설정이 되므로 이걸로 바꾸면 된다. 

다만 문제가, Esc키를 fcitx가 먼저 한번 잡아먹기 때문에, vim에서 i_mode에서 n_mode가려면, Esc를 두번 눌러야 한다. 




 입력기 비활성화를 누른 후, Esc키를 눌러보자.
만약 Esc나 Escape라는 글자가 나온다면 성공이지만, 보통은
Esc는 단축키 없음으로 약속되어 있는 경우가 있기에, Shift+Esc
같이 Modifier Key와 함께 눌러서 단축키를 등록하자





이제 터미널을 연후 $HOME/.config/fcitx/config 파일을 열도록 하자

여기서 SHIFT_   를 지우면, 간단히 완성된다.
바로 이 파일을 고치면 되지않겠냐 생각 하는 사람이 분명 있을 것이다.

하지만  내부에서 Esc를 어떻게 취급하는지 모르기에 이렇게 하는게 안전하다.
내가 이미 바로 고치러 와봤는데, 버전마다 이름이 달라서 다른 값을 넣으면, 모든 단축키 설정이 맛이 간다.

이제 키를 누르면, IM이 활성/비활성 토글이 되고, 키를 누르면, IM이 비활성된다. 

완성. 자야로운 VIM 생활을 합시다.


댓글 2개:

  1. 오 ... 내가 쓴 글이구나... 여전히 imdisable은 안먹히는 fcitx5.

    답글삭제
  2. vim 9에서는 fcitx를 안쓰게하면 충돌이 일어난다. toggle을 시키던가 해야하는것 같다.

    답글삭제

가장 많이 본 글