のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.

【vim】NeoCompleteを使いたくてlua付きvimをインストールしてviコマンドで使うのに色々ハマった

NeoCompleteを使いたかったのでlua付きの最新vimをインストールするのに色々ハマった。
察しのよい人はもうタイトルからお気づきかと思われますが、vimのインストールはできていたのにviコマンドで呼び出すように設定していなかったというオチです。
まあ他にもインストール時にpython周りでエラーになったのでまた同じことを繰り返さないためにもメモ。
前提として、NeoCompleteはインストール済み。

Homebrewを使って最新のlua付きvimをインストールする。
vim にオプション --with-lua を指定するとluaが有効になっている状態でインストールできるとのことだったので実行。

$ brew install vim --with-lua
==> Using the sandbox
==> Downloading https://github.com/vim/vim/archive/v8.0.0596.tar.gz
Already downloaded: /Users/user_name/Library/Caches/Homebrew/vim-8.0.0596.tar.gz
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/8.0.0596/share/man --enable-multibyte --with-tlib=ncurses --enable-cscope --with-
==> make
Last 15 lines from /Users/user_name/Library/Logs/Homebrew/vim/02.make:
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/undo.o undo.c
ang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/userfunc.o userfunc.c
clang -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/window.o window.c
clang -c -I. -I/usr/local/include -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/if_lua.o if_lua.c
clang -c -I. -g -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/if_perl.o auto/if_perl.c
clang -c -I. -g -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/if_perlsfio.o if_perlsfio.c
clang -c -I. -I/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DPYTHON_HOME='"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7"' -fPIE -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/if_python.o if_python.c
clang -c -I. -I/Users/user_name/.rbenv/versions/2.4.0/include/ruby-2.4.0 -I/Users/user_name/.rbenv/versions/2.4.0/include/ruby-2.4.0/x86_64-darwin16 -DRUBY_VERSION=24 -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o objects/if_ruby.o if_ruby.c
if_python.c:67:10: fatal error: 'Python.h' file not found
#include
^
1 error generated.
make[1]: *** [objects/if_python.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [first] Error 2

READ THIS: http://docs.brew.sh/Troubleshooting.html

These open issues may also help:
vim package installation error - configure: error: cannot run C compiled programs. https://github.com/Homebrew/homebrew-core/issues/12323

コンパイルエラー・・・。
pythonは入っていたはず、と思い確認してみる。

$ python --version
Python 3.5.0

うむ、入ってますな。
と、エラーメッセージで指定しているpythonのバージョンが違うことに気がつく。
色々確認。

$ which python3
/Users/user_name/.pyenv/shims/python3

$ which python
/Users/user_name/.pyenv/shims/python

コンパイルで指定しているpathと異なる。。

$ pyenv versions
system
* 3.5.0 (set by /Users/user_name/.pyenv/version)

途中で、.bash_profileでpythonのhome_pathをしていたことを思い出す。
プロジェクトで使うのに書いた気がするのでアンインストールは怖い。
コンパイルには2.7系を使っているようなのでとりあえず切り替える。

$ pyenv global system
$ pyenv versions
* system (set by /Users/user_name/.pyenv/version)
3.5.0

$ pyenv rehash
$ python --version
Python 2.7.13

再度インストール。

$ brew install vim --with-lua
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
caddy

==> Using the sandbox
==> Downloading https://github.com/vim/vim/archive/v8.0.0596.tar.gz
Already downloaded: /Users/user_name/Library/Caches/Homebrew/vim-8.0.0596.tar.gz
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/8.0.0596/share/man --enable-multibyte --with-tlib=ncurses --enable-cscope --with-
==> make
==> make install prefix=/usr/local/Cellar/vim/8.0.0596 STRIP=/usr/bin/true

できた!

$vi --version

  1. lua と表示されることを確認したので、vi hoge.rbを開いて確認してみるものの、動作しない。。

vi上でコマンド打ってみる。

:NeoCompleteEnable
=> does not work with this version of vim

最新のvim入ったのになんで・・・?
使用しているvimがどこにあるのか確認してみる

$ which vim
=> /usr/local/bin/vim

$ which vi
=> /usr/bin/vi

あっ・・・(察し)

切り替える。

$ cd /usr/local/bin; ln -s vim vi

できた!

他のプラグインもなんか挙動がおかしいと思っていたら、ずっと vi と vim 気にせずに古いバージョン使ってたからか。。