Neovim은 기존 Vim의 코드가 너무 방대하고 오래되어서 생기는 유지보수 측면에서의 문제점을 해결하기 위한 프로젝트다. Vim에선 플러그인이 작동할 때 프로그램이 잠시 멈추는데, 플러그인이 많은 경우엔 상당히 거슬린다. Git gutter랑 linter 몇 개만 깔아도 입력모드에서 노말모드로 전환할 때 Vim이 프리징되는 것을 볼 수 있다. Neovim은 이 문제를 비동기로 해결한다.
설치
MacOS에서는 brew로 간단하게 설치할 수 있다.
1 | brew install neovim/neovim/neovim |
Ubuntu에서는 Python이 설치되어 있어야하고, apt에 repository를 추가하고 설치하면 된다.
1 | sudo apt install software-properties-common |
설정
이미 Vim을 쓰고 있다면 심볼릭 링크로 기존 설정을 그대로 Neovim에 사용할 수 있다.
1 | mkdir ~/.config |
Neovim의 플러그인은 Python이나 Ruby뿐만 아니라 다양한 언어로 쓰일 수 있다. 이는 플러그인과의 통신을 msgpack을 이용해서 하기 때문이다. ‘neovim node client’등으로 검색하면 원하는 플러그인을 작동하게 할 수 있는 클라이언트를 설치할 수 있다. :CheckHealth
로 Python2, Python3, Ruby 클라이언트의 설치여부를 확인할 수 있다. Python 클라이언트는 pip로 설치한다.
1 | pip2 install neovim |
플러그인
보통 Vim에서 플러그인을 사용하면 플러그인 매니저로 관리한다. 여러가지 플러그인 매니저가 있는데, 난 Paul이 추천해준 Vim-Plug를 쓴다. 플러그인 설치와 업데이트를 병렬로 수행해 속도가 빠르다. 개발자가 한국분이신데 국내 개발자 중에 Github star 숫자가 독보적이다.
1 | curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ |
Vim-Plug를 설치했다면 init.vim
을 수정해주자. call Plug#begin
과 call plug#end
를 삽입하고 이 사이에 다음과 같이 플러그인을 적어주면 된다.
1 | call plug#begin('~/.local/share/nvim/plugged') |
목록을 추가하고 저장했다면 :so %
로 설정파일을 재시작하고, :PlugInstall
을 실행하면 적어둔 플러그인이 설치된다. Vim Awesome에서 어떤 플러그인이 인기 있는지 볼 수 있다.
비동기적 프로세싱만으로도 Neovim을 사용할 이유는 충분한데, 다양한 언어로 플러그인을 만들 수 있다는 점 때문에 앞으로가 기대된다.