neocompleteを使えるようにするためにluaを有効にしたvimをインストール。
luaとvimは一般ユーザー権限でインストールした。
環境
- CentOS 6.7
- vim 7.4
- lua 5.3.4
luaのインストール
$ cd ~/usr/local/src/
$ wget "http://www.lua.org/ftp/lua-5.3.4.tar.gz"
$ tar xf lua-5.3.4.tar.gz
$ cd lua-5.3.4
$ make linux
$ make install INSTALL_TOP=$HOME/usr/local
以下はvimのインストールのための設定
$ cd ~/usr/local/src/lua-5.3.4/src
$ mkdir include
$ ln -s *.h ./include
vimのインストール
- ソースのダウンロード
$ wget "ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2"
$ tar xf vim-7.4.tar.bz2
$ cd vim74
- インストール
$ ./configure \
--prefix=$HOME/usr/local \
--with-features=huge \
--enable-multibyte \
--enable-luainterp \
--with-lua-prefix=$HOME/usr/local/src/lua-5.3.4/src \
--enable-perlinterp \
--enable-pythoninterp \
--with-python-config-dir=/usr/lib64/python2.6/config \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby
$ make
$ make install
- エラーが出たら
less ./src/auto/config.log
でログを確認
今回は"undefined reference to 'luaL_optlong'"なるエラーが出た。
objects/if_lua.o: In function 'luaV_list_insert':
$HOME/usr/local/src/vim74/src/if_lua.c:777: undefined reference to 'luaL_optlong'
collect2: ld returned 1 exit status
これはvim74/src/if_lua.c
を以下のように書き換えることで回避できる。
--- long pos = luaL_optlong(L, 3, 0);
+++ long pos = (long)luaL_optinteger(L, 3, 0);
確認
$ vim --version
でluaに+が付いていれば無事に完了。
参考
CentOS7でluaを有効にしたVimに入れ替える
enable-luaなvim7.4をインストール
vim で lua を使えるようにビルドしたメモ
Lua を一般ユーザでソースコードからインストールする