注意(2016/10/18 追記)
この記事の情報は古くなっているので、新しい記事を参照してください.
前書き
僕自身,neovim自体にはあまり注目していなかった人間であるが,neovimが頑張ってるっぽく,かなり話題を耳にするようになったので,敢えてWindowsでneovimを試すことにした. Windowsで試すきっかけとなったのは,Osaka.vim #6にて,「Windows用のneovimのバイナリって無いんですかね?」と聞いたところ,公式で配布されており,Wikiにもそのことが書かれているという情報をいただいたからである. また,(ゴミ)プラグイン作成者としても,自分のプラグインがneovimで動作するかどうかには興味があった.
ダウンロード
公式でneovim本体のバイナリとQtで実装されたフロントエンドのバイナリが配布されているので,それらをダウンロードしてくる. 公式のWikiに書かれている通り,
- neovimのAppVeyorからneovim本体のバイナリをダウンロードする(手順は以下とgifアニメを参照).
Environment: GENERATOR=Visual Studio 14 Win64, DEPS_PATH=deps64
というラベルをクリック.Artifacts
タブをクリック.- Neovim.zipをダウンロードし,解凍.
- Releases · equalsraf/neovim-qtより,neovim-qt.zipをダウンロードし,解凍.
Neovim\nvim.exe
をneovim-qt\
に移動.Neovim\share\nvim\runtime\
以下にあるファイルを全てneovim-qt\
にぶちまける.
という手順を踏むとよい.
あとは,nvim-qt.exe
をダブルクリックすると,neovimが起動する.
neovim本体である nvim.exe
単体ではneovimを起動できない(Windowsのコンソールをサポートしていない)ので注意すること.
自分でビルドしたい場合
AppVeyorのビルドログを参考にし,以下の順番でコマンドを実行するとよい.
ただし,cmake,git,python2.7以上,Visual Studio 2015(2015以上であることが必須)などがインストールされており, cl.exe
などのツールがコマンドプロンプトで使用できることが前提である.
:: MSVCでのビルド用のリポジトリ/ブランチを持ってくる > git clone -q --branch=tb-mingw https://github.com/equalsraf/neovim.git > git checkout -qf 27f0fa51e9ca886c87159ee1e2c394426d64d128 > cd neovim :: 環境変数の設定 > set GYP_MSVS_VERSION=2015 > set GENERATOR=Visual Studio 14 Win64 > set DEPS_PATH=deps64 :: サードパーティライブラリのビルド > mkdir %DEPS_PATH% > cd %DEPS_PATH% > cmake -G "%GENERATOR%" ..\third-party\ > set PATH=%PATH%;C:\cygwin64\bin\ > cmake --build . > cd .. :: neovimのビルド > mkdir build > cd build > cmake -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Debug -DDEPS_PREFIX=..\%DEPS_PATH%\usr -DCMAKE_INSTALL_PREFIX=..\INSTALL .. > cmake --build .
ある程度の開発環境が整っているならば,これでビルドすることができるはずである. 現在のところ,本家のリポジトリを持ってくるわけではないが,将来的には本家から持ってくるようにできるのではないだろうか?
なお,Cygwinのバイナリがあるディレクトリのパスを通していると,思わぬところでつまづいたりするので注意すること. neovim-qtのビルドについてはやっていない.(ただのフロントエンドだろうし...)
neovimの設定ファイル
最近になって,Vimの %HOME%\_vimrc
(Linux環境では ~/.vimrc
)にあたるファイルは %HOME%\.nvimrc
から %XDG_CONFIG_HOME%\nvim\init.vim
に,%HOME%\vimfiles\
(Linux環境では ~/.vim/
)にあたるディレクトリは %HOME%\.nvim\
から %XDG_CONFIG_HOME%\nvim\
に変更された.
Linux環境における $XDG_CONFIG_HOME
のデフォルトディレクトリ( $XDG_CONFIG_HOME
環境変数が存在しない場合のディレクトリ)は, ~/.config/
であるが,Windowsでは, %AppData%
がデフォルトディレクトリとなるらしい(参考).
僕は,Linuxと同様に %XDG_HOME_CONFIG%
を %AppData%
ではなく, %HOME%\.config
とした.
既存のVimが用いる .vimrc
と vimfiles\
をneovimの設定として扱いたい場合,以下のようにしてシンボリックリンクを作成するとよい.
(ただし,コマンドプロンプトを管理者権限で起動する必要があるかもしれない.
また,環境変数 %XDG_CONFIG_HOME%
と %HOME%
がちゃんと設定され,共に存在することを確認しておこう.)
> mklink /D %XDG_CONFIG_HOME%\nvim %HOME%\vimfiles\ > mklink %HOME%\vimfiles\init.vim %HOME%\_vimrc
init.vimに関しては,シンボリックリンクを作成するのではなく,以下のように記述するのもよいだろう.
source ~/_vimrc
この場合, init.vim
にneovimだけで用いる設定を記述することが可能である.
init.vim
は新規に書くことが望ましいが,僕は4000行を超える .vimrc
を記述しており,neovimの init.vim
用に .vimrc
を書き直すようなことはしたくなかったので, .vimrc
にneovimの設定も記述することにした.
neovimの判定は has('nvim')
という式を用いるとよい.
neovimを利用している環境であるならば,この式は 1
と評価されるはずである.
注意点
僕が軽くWindowsのneovim + neovim-qtを触って遭遇した問題は,以下のようなものである.
- フロントエンドであるneovim-qtの問題であると思われるが,文字コードがutf-8以外のファイルを開くと文字化けする.
- neovim側から新規ファイルを作成しようとすると(存在しないファイルを編集しようとすると),"Permission denided" となってしまい,強制的に保存しないといけない(
:write!
を用いる). - コンパイル時にいくつかのオプションを無効化しているので,既存の
_vimrc
を用いるとエラーが発生した.- 例えば,
:language
コマンドは使用できなかった.
- 例えば,
- neovim本体をフロントエンドであるneovim-qtを用いているので,
has('gui_running')
が0
となることを期待していたが,起動時は0
.起動後は1
を返却するようになっていた. - 当然のことであるが,一部のプラグインはうまく動作しない
- bling/vim-airline を導入して,
:split
,:vsplit
などとして画面を分割すると,盛大にエラー吐いたなど ....
- bling/vim-airline を導入して,
感想
neovimの公式が配布しているWindows向けのバイナリには難が多いと感じた.
Linuxで自分でビルドした場合,エンコーディング等の問題もなく,快適に使うことができたので,現状ではWindows対応がややおろそかであると思われる.
また, :terminal
コマンドが現状では利用できなかったのが少し残念であった.