LoginSignup
7
5

More than 5 years have passed since last update.

(失敗)Neovimに移行しつつHaskellの開発環境を整える on Windows

Posted at

はじめに

最近の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と設定を共存したい場合はこれを使って頑張ればよいみたいです。

と、言うわけで :point_down: のような設定を追加しました。

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ではサポートされていない機能のようです... :sob:
terminal!コマンドの呼び出しでこけてしまいました。早く気づけ...。

ほかにも設定失敗したもの

一応載せておきます。

Python interfaceのインストール(失敗)

denite.vimdeoplete.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が使えないのがちょっと痛いかも...。

参考にしたもろもろのページ

7
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5