「Neovim」とは?
Vimをベースとしたテキストエディタです。
Vimの機能を損なうことなく、Vimが持っている全ての問題を修正するとのことです。
Vimの勉強会に参加したとき、登壇された方が使っていたので私も使ってみることにしました。
環境
- OS:macOS Mojave 10.14.6
- Neovim:0.4.2
セットアップ
インストール
Homebrewからインストールします。
$ brew install neovim
バージョンの確認
インストールできたかどうか、バージョンを確認してみます。
$ nvim --version
NVIM v0.4.2
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -I/tmp/neovim-20190916-88369-176iaxs/neovim-0.4.2/build/config -I/tmp/neovim-20190916-88369-176iaxs/neovim-0.4.2/src -I/usr/local/include -I/tmp/neovim-20190916-88369-176iaxs/neovim-0.4.2/deps-build/include -I/usr/local/opt/gettext/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include -I/tmp/neovim-20190916-88369-176iaxs/neovim-0.4.2/build/src/nvim/auto -I/tmp/neovim-20190916-88369-176iaxs/neovim-0.4.2/build/include
Compiled by brew@Mojave-2.local
Features: +acl +iconv +tui
See ":help feature-compile"
システム vimrc: "$VIM/sysinit.vim"
省略時の $VIM: "/usr/local/Cellar/neovim/0.4.2/share/nvim"
Run :checkhealth for more info
バージョンが表示されているため、インストールに成功しています。
設定ファイルの作成
Vimの設定をNeovimにも反映します。
Vimで特に設定していない場合、この手順は不要です。
設定ファイルパスが ~/.vimrc
→ ~/.config/nvim/init.vim
に変わりました。
基本的にはVimの設定ファイルがそのまま使えるため、コピーしてリネームするだけで使えます。
ただ、コピーすると設定の変更時にVimとNeovimの両方を修正する必要があるので、シンボリックリンクを貼るのがオススメです。
※すでに設定ファイルが存在する場合、シンボリックリンクで上書きしてしまうのでご注意ください。
$ mkdir ~/.config
$ mkdir ~/.config/nvim
$ ln -fns ${元となる.vimrcのフォルダパス}/.vimrc ~/.vimrc
$ ln -fns ${元となる.vimrcのフォルダパス}/.vimrc ~/.config/nvim/init.vim
設定ファイルを作成したら、Neovimを起動してみます。
$ nvim
これでエラーなく起動したらセットアップに成功です!
私の環境ではいくつかエラーが発生したので対応します。
Neovimで使えない設定の削除
以下の設定はNeovimで廃止されたので削除します。
- :set ttymouse=xterm2
Vimでは xterm2
がデフォルトであり、VimとNeovimで極力分岐を作りたくなかったため、設定ごと削除しました。
Pythonのパスを指定
deoplete.nvimをインストールして起動したところ、以下のエラーが発生しました。
[deoplete] deoplete requires Python3 support("+python3").
Neovimでは違うPythonを見ているようなので、パスを明示的に指定します。
+ let g:python_host_prog = system('(type pyenv &>/dev/null && echo -n "$(pyenv root)/versions/$(pyenv global | grep python2)/bin/python") || echo -n $(which python2)')
+ let g:python3_host_prog = system('(type pyenv &>/dev/null && echo -n "$(pyenv root)/versions/$(pyenv global | grep python3)/bin/python") || echo -n $(which python3)')
私はpyenv-virtualenvで管理しているPythonを見るようにしました。
:echo has('python3')
で 1
が返ればOKです。
キャッシュの削除
私はプラグイン管理ツールにdeinを使っています。
カラースキームが読み込まれなかったので、ランタイムパスのキャッシュを削除しました。
:call dein#recache_runtimepath()
こちらはVimでも発生していたので、おそらく私の設定がよくないです。
おわりに
これで念願のNeovimをセットアップできたので、積極的に使います!
ただMacVimも便利なので、必要に応じて使い分けます。
Neovimについては調査が足りていないため、もし誤っている箇所がありましたらご指摘いただけると嬉しいです。