Windowsでneovim環境を作る
neovimのバージョンが0.2になり、WindowsがExperimentalでは無くなったので、
試しに導入した時のメモ。
のはずだったが、導入から大分時間が経ってしまったため、手順を忘れぎみ。
家のPCに導入しつつ書く。
前提
- neovimを導入したいPCは、完全オフライン。
- オンラインに繋がったPCを使用可能。
- USBを使ってオフラインのPCにファイルを移動可能。
neovimの準備
公式から拾う。予めビルドされたのが用意されているため、それを使う。
Installing Neovim · neovim/neovim Wiki · GitHub
適当な場所に展開し、起動確認しておく。
以前はnvim-qt.ext
を別途拾ってくる必要があった気がするけど、同梱されるようになってて少しだけ楽になった。
Pythonの準備
闇の力 を導入予定のため、Python3を使えるようにする必要がある。
パッケージを取得
以前の記事 でPython3は用意しているため、それをそのまま使う。
これ、vim8と同時に動かしたら問題起きたりするのかな。
pythonを使う設定
WindowsではXDG_CONFIG_PATH
配下のinit.vimを読み込むらしい。
標準では~/.config/nvim
になる模様。そこに配置する。
配置したら、python3の設定を書いておく。
let python3_host_prog="C:/Users/ton/program/vim8/python3/python.exe"
nvim-qtを起動し、:CheckHealthの結果を確認。この時点ではエラーになる。
Python 3 provider (optional) - INFO: Using: g:python3_host_prog = "C:/Users/ton/program/vim8/python3/python.exe" - INFO: Executable: C:/Users/ton/program/vim8/python3/python.exe - ERROR: Command error (4) C:/Users/ton/program/vim8/python3/python.exe -c import neovim; print(neovim.__file__): Traceback (most recent call last): - File "<string>", line 1, in <module> - ImportError: No module named 'neovim' - INFO: Python3 version: 3.5.3 - INFO: python.exe-neovim version: unable to load neovim Python module - ERROR: Neovim Python client is not installed. Error: unable to load neovim Python module - SUGGESTIONS: - Run in shell: pip3 install neovim
neovimでpython3を使うためには、別途モジュールをインストールする必要があるため。
neovim Python client の準備
オンライン、かつ、pip
が使えるのであれば、エラーメッセージ通りに
pip3 install neovim
を実行すれば、すぐ完了。
しかし、今回neovimを入れたいPCはオフラインのため、必要なパッケージを転送し、
手動でインストールする。
pipのインストール
get-pip.pyというスクリプトが用意されているので、ここから、入手する。
次に、以下パッケージを PyPI から取得して、get-pip.pyと同じ場所に配置する。
配置したらpython.exe get-pip.py
を実行し、インストール。
$ python.exe Scripts\get-pip.py Collecting pip Using cached pip-9.0.1-py2.py3-none-any.whl Collecting setuptools Using cached setuptools-36.2.0-py2.py3-none-any.whl Collecting wheel Using cached wheel-0.29.0-py2.py3-none-any.whl Installing collected packages: pip, setuptools, wheel Successfully installed pip-9.0.1 setuptools-36.2.0 wheel-0.29.0
これでpipが使える。
Neovim Python Client のインストール
pipと同じように、必要なパッケージを拾ってインストールするだけ。
というわけで、以下パッケージをPyPIから取得し、今度はpip3.exe
と同じ場所に配置する。
会社のPCに導入した時は、もっと沢山必要だった気がするんだけど…まぁ必要だったらメッセージ出るので、
都度取得、配置すればいい。
配置したら、pip3.exe install <拾ってきたパッケージ名>
を実行し、インストール。
$ pip3 install greenlet-0.4.12-cp35-cp35m-win_amd64.whl msgpack_python-0.4.8-cp35-cp35m-win_amd64.whl pyuv-1.4.0-cp35-cp35m-win_amd64.whl neovim-0.1.13.tar.gz Processing c:\users\ton\program\vim8\python3\scripts\neovim-0.1.13.tar.gz Processing c:\users\ton\program\vim8\python3\scripts\greenlet-0.4.12-cp35-cp35m-win_amd64.whl Processing c:\users\ton\program\vim8\python3\scripts\msgpack_python-0.4.8-cp35-cp35m-win_amd64.whl Processing c:\users\ton\program\vim8\python3\scripts\pyuv-1.4.0-cp35-cp35m-win_amd64.whl Building wheels for collected packages: neovim Running setup.py bdist_wheel for neovim ... done Stored in directory: C:\Users\ton\AppData\Local\pip\Cache\wheels\1f\56\46\0d9eb8b47f52d685aebfd81df5642f44b334e4c671dfb3259b Successfully built neovim Installing collected packages: greenlet, msgpack-python, pyuv, neovim Successfully installed greenlet-0.4.12 msgpack-python-0.4.8 neovim-0.1.13 pyuv-1.4.0
これで Neovim Python Clientが入ったはず。
動作確認
:CheckHealth
を実行して、確認する。
Python 3 provider (optional) - INFO: Using: g:python3_host_prog = "C:/Users/ton/program/vim8/python3/python.exe" - INFO: Executable: C:/Users/ton/program/vim8/python3/python.exe - INFO: Python3 version: 3.5.3 - INFO: python.exe-neovim version: 0.1.13 - SUCCESS: Latest python.exe-neovim is installed: 0.1.13
やったぜ。
闇の力を手に入れる
dein/denite/deopleteの導入まで。オフライン環境はほんと面倒。
gitの準備
あらかじめ、vimからgitを使えるようにしておくこと。
vimから「:!git」でgitを実行できる状態じゃないと、
dein.vim で正しくランタイムパスが設定されない。
エラーメッセージとか出ないので、PC再設定してる時にはまった。
dein.vim
dein.vim からパッケージをzipで取得。
展開して出来たフォルダを~/.config/nvim/dein/repos/github.com/Shougo/dein.vim/
として配置する。
$ ls .config/nvim/dein/repos/github.com/Shougo/ dein.vim denite.nvim
そして、init.vimに以下を追記。または、ヘルプを参照して書いてもいい。
let $MY_VIMRUNTIME = $HOME.'/.config/nvim' if &compatible set nocompatible endif " dein.vimのディレクトリ let s:dein_dir = expand('$MY_VIMRUNTIME/dein') " dein.vimのログ let g:dein#install_log_filename = s:dein_dir . '/dein.log' " dein.vim 本体 let s:dein_repo_dir = s:dein_dir . '/repos/github.com/Shougo/dein.vim' " dein.vim がなければ git clone if &runtimepath !~# '/dein.vim' if !isdirectory(s:dein_repo_dir) execute '!git clone https://github.com/Shougo/dein.vim' s:dein_repo_dir endif execute 'set runtimepath^=' . fnamemodify(s:dein_repo_dir, ':p') endif
neovimを起動して、:call dein#update()
が実行できる事を確認する。
denite.nvim
dein.vimと同じように denite.nvim をzipで取得し、dein.vimと同じ場所に配置。
init.vimに以下を追記。
if dein#load_state(s:dein_dir) call dein#begin(s:dein_dir) call dein#add('Shougo/denite.nvim', {'frozen': '1'}) call dein#end() call dein#save_state() endif
neovimを起動後、:UpdateRemotePlugins
→再起動→:call dein#update()
と実行して、:help denite
でヘルプが見れる事を確認する。
deoplete.nvim
denite.nvimと全く同じ流れ。
deoplete.nvim をzipで取得し、dein.vimと同じ場所に配置。
init.vimのdenite.nvimの行の下に追記。
call dein#add('Shougo/denite.nvim', {'frozen': '1'}) call dein#add('Shougo/deoplete.nvim', {'frozen': '1'})
後、以下も適当な場所に追記。
let g:deoplete#enable_at_startup = 1
neovimを起動後、:UpdateRemotePlugins
→再起動→:call dein#update()
と実行して、:help deoplete
で、ヘルプが見れる事を確認する。
最後に
以前触った時よりもサクサク動作するのでいい感じ。
ただし、Windowsではアスタリスクが入力できないという 問題 があるため、まだ常用できない。
BoW環境ではneovimを使っているので、上記バグ?が直ったらWindowsもneovimにしたい、とは思っている。