티스토리 뷰

728x90

문제점

vscode에서 vim 플러그인을 사용할때 다음과 같은 문제가 발생했다.

  • 한글 입출력할때 글자가 씹히거나 깨지는 경우
  • 한글 입력으로 설정되어 있을때 normal 모드 진입이 되지 않는 문제

대부분의 문제는 한글의 입출력과 관련돼서 발생했는데 구글링해본 결과 꽤나 역사가 깊은 버그인걸로 보였고 많은 사람들이 vim 대신 neovim 플러그인은 한글 관련된 버그가 발생하지 않는 점으로 추천하여 vim 플러그인 대신 neovim 플러그인을 사용하기로 결정하였다.

설치

바이너리 다운로드 및 설치

neovim을 사용하기 위해서는 바이너리 파일을 먼저 설치해야 한다.
다만 문제는 WSL2aptbrew는 버전 업데이트가 되고 있지 않아 22.12.08 기준으로 0.4.3 버전으로 neovim 플러그인을 사용하기 위한 최저 버전(0.8.0 버전 이상)을 맞추지 못 한다.

그래서 최신 버전의 neovim은 다음과 같은 방식으로 설치한다.

# apt에 repository 추가
$ sudo add-apt-repository ppa:neovim-ppa/unstable

# update 후 설치
$ sudo apt-get update
$ sudo apt-get install neovim

설치 이후 nvim --version을 입력하였을때 다음과 같이 나오면 제대로 설치가 된 것이다.

NVIM v0.9.0-dev
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3

vscode 설정

  1. Extension에서 neovim을 검색 후 플러그인 설치를 진행한다. 이때 Vim을 설치하지 않도록 주의.
  2. [Optional] 터미널에 wslpath "c:\windows"를 검색해서 wsl 설정이 제대로 되어있는지 확인한다. /mnt/c/windows 등과 같이 나오면 제대로 되어있음을 의미.
  3. Ctrl + ,로 Settings에 들어가서 검색창에 @ext:asvetliakov.vscode-neovim wsl를 검색,
    • Remote [WSL: 본인의 Linux OS] 탭에서 Vscode-neovim: Use WSL에 체크 표시.
    • Vscode-neovim > Neovim Executable Paths: Linux 에 /usr/bin/nvim 입력.
    • Settings.json에 다음의 코드를 추가.
    • "extensions.experimental.affinity": { "asvetliakov.vscode-neovim": 1 },

결과

초기 문제점 중 하나인 한글 씹힘 문제는 해결되었으나 한글 입력에서 normal 모드의 커맨드가 먹히지 않는 문제는 여전히 발생하였다.

이 문제는 오토핫키로 다음 커맨드를 이용해서 해결하였다.
Esc 키를 입력하면 항상 영문 입력 모드로 변경시켜주는 방식으로 동작한다.

$Esc::
    if(IME_CHECK("A"))
        Send, {VK15}    ;영문이라면 한영전환 키를 입력해준다.
    Send, {Escape}
    return

/*
  IME check 
*/
IME_CHECK(WinTitle) {
  WinGet,hWnd,ID,%WinTitle%
  Return Send_ImeControl(ImmGetDefaultIMEWnd(hWnd),0x005,"")
}
Send_ImeControl(DefaultIMEWnd, wParam, lParam) {
  DetectSave := A_DetectHiddenWindows
  DetectHiddenWindows,ON
   SendMessage 0x283, wParam,lParam,,ahk_id %DefaultIMEWnd%
  if (DetectSave <> A_DetectHiddenWindows)
      DetectHiddenWindows,%DetectSave%
  return ErrorLevel
}
ImmGetDefaultIMEWnd(hWnd) {
  return DllCall("imm32\ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
}

레퍼런스

https://evancalz.medium.com/setting-up-neovim-on-wsl2-bf634cac435f

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함