NeoVim - Neovim 설정하고 jedi-vim 설치하기

2 분 소요

NeoVim - Neovim 설정하고 jedi-vim 설치하기

Neovim설정하기

  • NeoVim은 ~/.config/nvim/init.vim에서 설정합니다. 없을 경우 폴더를 만들어 주고요.
$ cd ~/.config/
mkdir nvim
$ cd ~/.config/nvim
vi init.vim
  • init.vim을 만들어주고 .vimrc처럼 파일 내용들을 작성해줍니다.
syntax on
colorscheme jellybeans
set number
set clipboard=unnamed

set langmenu=en_US.UTF-8
language messages en_US.UTF-8
  • theme의 경로가 달라졌기 때문에 기존 theme 을 가져와서 복사해줍니다.
$ cd ~/.vim/colors
$ cp jellybeans.vim ~/.config/nvim/colors/

pkg manager 설치하기 - vim-plug 설치하려다가 Vundle로 돌아감

  • 기존 vim에서는 Vundle을 사용했기 때문에, Vundle을 사용하려고 했으나, Neovim에서는 vim-plug를 사용하는 것으로 보입니다.
  • 확인해 보면, 설치가 잘 된 것을 확인할 수 있죠.
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 82789  100 82789    0     0   171k      0 --:--:-- --:--:-- --:--:--  170k
$ cd .local/share/nvim/site/autoload/
$ ls
plug.vim
  • 다만 설치 중에 패키지가 끌어와지지 않아서, 그냥 Vundle로 돌아갑니다.
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.config/nvim/bundle/Vundle.vim
  • jedi-vim을 Vundle내에 작성해줍니다. 그리고 :PluginInstall을 실행하여, 플러그인들을 설치해줍니다.
set rtp+=~/.config/nvim/bundle/Vundle.vim
call vundle#begin('~/.config/nvim/bundle')
 
Plugin 'VundleVim/Vundle.vim'
Plugin 'davidhalter/jedi-vim'
"Plugin 'Valloric/YouCompleteMe'
 
call vundle#end()
  • jedi vim을 실행했으나, 다음과 같이 python3가 feature로 설정되어 있지 않아서, 실행이 안됩니다.
Error detected while processing function jedi#init_python[11]..<SNR>27_display_exception:
line   19:
Error: jedi-vim failed to initialize Python: jedi-vim requires Vim with support for Python 3. (in function jedi#init_python[4]..<SNR>27_init_python, line 4)
  • 현재 vim을 확인해 보면, feature가 설치되어 있지 않은 것을 알 수 있음.
$ vi --version
NVIM v0.6.0
Build type: Debug
LuaJIT 2.1.0-beta3
...
Features: +acl +iconv +tui
  • 실제로 nvim에서 :python a.py를 실행해 보면 다음과 같은 에러가 발생합니다.
E319: No "python" provider found. Run ":checkhealth provider" 
  • :checkhealth provider를 해봅니다.
## Python 3 provider (optional)
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 3:
  - INFO: Executable: Not found
  • python module를 사용하려면, pynvim이라는 모듈이 필요하다고 합니다. 아래 명령어를 실행해 보죠.
$ python3 -m pip install --user --upgrade pynvim
Collecting pynvim
  Downloading pynvim-0.4.3.tar.gz (56 kB)
     |████████████████████████████████| 56 kB 5.4 MB/s 
Requirement already satisfied: msgpack>=0.5.0 in ./opt/anaconda3/lib/python3.7/site-packages (from pynvim) (0.6.1)
Requirement already satisfied: greenlet in ./opt/anaconda3/lib/python3.7/site-packages (from pynvim) (0.4.15)
Building wheels for collected packages: pynvim
  Building wheel for pynvim (setup.py) ... done
  Created wheel for pynvim: filename=pynvim-0.4.3-py3-none-any.whl size=41588 sha256=...
Successfully built pynvim
Installing collected packages: pynvim
Successfully installed pynvim-0.4.3
WARNING: You are using pip version 21.1.3; however, version 21.3.1 is available.
  • 이렇게 하고 나니까, 문제없이 실행되고, jedi-vim도 사용할 수 있끼는 하지만….그냥 vim을 사용할 때보다 오히려 느려진 느낌이 드네요…..실패한 것 같습니다.

Wrap-up

  • 처음에 NeoVim을 설치하기로 한 것은, jedi-vim이 너무 느려서, 혹시 Neovim에서는 Jedi-vim이 빨라질 수 있지 않을까, 하는 기대감 때문이었는데요. 결과적으로는 전혀 빨라지지 않았습니다. 오히려 조금 더 느린 느낌마저 들어요.
  • 만약 그러함에도 NeoVim이 가진 분명한 장점이 있따면, 이 아이를 쓰겠지만…글쎄요. 잘 모르겠습니다.
  • 따라서, 결국은 원래대로 vim을 사용해 보기로 했습니다.

댓글남기기