はじめに
最近のHaskellの開発ツールは、昔からあるghc-modだけでなく、hsdevだったりhaskell-ide-engineだったりide-backendなどなど、いろいろ出てきていますが、この辺とかで紹介されているinteroを今回は試したくなったので、Neovimからinteroの機能を使うプラグインを入れるべく、Neovimの導入から始めてみたよ、という欲張りなお話です。
結論から言うと、Windows版のNeovimは現状Neovimのterminal!
コマンドをサポートしていないため、intero-neovimも使えないようです。
更新があればまたお伝えします...。
試した環境
- Windows 10 Home 64bit (ver. 1607)
- stack v1.0.4 (そういえばこっちは最新版じゃない...)
- LTS Haskell 7.7
(Bash for Windowsは使ってません)
Neovimのインストール
Windows版はまだexperimentalとのことですが、公式サイトの説明やWindowsでneovimを使う(改訂版1) - koturnの日記どおりの方法でインストールできました。
設定
echo has('nvim')
と実行してみたらNeovimの場合1
が、Vimの場合0
が返ってきたので、Vimと設定を共存したい場合はこれを使って頑張ればよいみたいです。
と、言うわけで のような設定を追加しました。
if has('nvim')
if has('win32')
" 既存のvimfilesディレクトリーをruntimepathに追加する。
set rtp^=~/vimfiles
set rtp+=~/vimfiles/after
" if_pythonの設定に挑戦した跡。実際にはうまくいってない
let g:python_host_prog = 'C:\Program Files\Python35-32\python.exe'
else
" 普段からLinuxと設定を共有しているので、
" ~/.vimもruntimepathに追加する。
set rtp^=~/.vim
set rtp+=~/.vim/after
endif
" 個人的に好きなカラースキーム。
" Vimの場合はgvimrcに書いていたが、
" Neovimでは無効そうな設定が大半を占めていたので個別にここに設定することにした
colorscheme koehler
endif
interoのインストール
普通にstack install intero
するだけですが、その前にglobal-project/stack.yaml
を確認し、resolver
ができるだけ新しいLTS Haskellになっていることを確認しましょう(現在は7.7)。
intero-neovimはintero ver. 0.1.16以上を推奨しているので、なるべく新しいバージョンを入れるためです。
Windowsの場合、global-project/stack.yaml
は<stackをインストールしたディレクトリー>/global-project/stack.yaml
にあります。
MacやLinuxの場合~/.stack/global-project/stack.yaml
のはずです。
intero-neovim のインストール
ようやく本題です。
Neovim専用なので、やはりhas('nvim')
な場合のみロードされるよう、次のようにして設定しました。
最近乗り換えたdein.vimを使用しています。
neobundleやvim-plugなどをお使いの方も似たようなやり方でインストールしましょう。
call dein#add('parsonsmatt/intero-neovim', { 'if': "has('nvim')" })
... で、やってみたんですが、どうやらintero-neovimはNeovimのterminal!
コマンドに依存しているらしく、
今回Windowsに入れたバージョンのNeovimではサポートされていない機能のようです...
terminal!
コマンドの呼び出しでこけてしまいました。早く気づけ...。
ほかにも設定失敗したもの
一応載せておきます。
Python interfaceのインストール(失敗)
denite.vimやdeoplete.vimなど、Vim・NeovimのPythonサポートが必要なプラグインも一緒に導入するため、Pythonもインストールすることにしました。
安心と信頼のShougoさんプロダクトです。
Python自体のインストールは普通にpython.orgから行いました。
(64bit版にしたい方は間違えて32bit版をインストールしないよう気をつけましょう。python-3.5.2-amd64-webinstall.exe
などが正しいファイル名です。)
が、インストールしただけではどうやらNeovimのPython 3インターフェースは有効にならないようなので、
次のコマンドを管理者権限で実行しました。
python -m pip install --upgrade pip
pip3 install neovim
残念ながら、それでもif_python
は有効になりませんでした。
このへんによるとWindows版ではどうもmasterで修正済みのバグがあるようです。
まぁ、今回はあくまでもHaskellの開発環境が目的なので、deoplete.vimやdenite.vimはまたの機会にしましょう。
deoplete.vimが使えないのがちょっと痛いかも...。