Vimでの補完機能のプラグインであるneocompletecache の後継版neocomplete を使うためにVimを再インストールした際の手順。 Lua自体がない環境もあったので、 Luaのインストールからです。
Linux
- su権限持っていないのでローカルにluaをインストール:
luaのダウンロードページより最新のを取ってきてインストール。 取り敢えずmakeしてみるとエラーがでた。
$ cd ~/tmp/
$ wget http://www.lua.org/ftp/lua-5.2.2.tar.gz
$ tar xzf lua-5.2.2.tar.gz
$ cd lua-5.2.2
$ make linux
...
make[1]: Entering directory `/home/user/tmp/lua-5.2.2/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/home/user/tmp/lua-5.2.2/src'
gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline-
/usr/lib/../lib64/libreadline.so: undefined reference to `PC'
/usr/lib/../lib64/libreadline.so: undefined reference to `tgetflag'
/usr/lib/../lib64/libreadline.so: undefined reference to `tgetent'
/usr/lib/../lib64/libreadline.so: undefined reference to `UP'
/usr/lib/../lib64/libreadline.so: undefined reference to `tputs'
/usr/lib/../lib64/libreadline.so: undefined reference to `tgoto'
/usr/lib/../lib64/libreadline.so: undefined reference to `tgetnum'
/usr/lib/../lib64/libreadline.so: undefined reference to `BC'
/usr/lib/../lib64/libreadline.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[2]: *** [lua] Error 1
make[2]: Leaving directory `/home/user/tmp/lua-5.2.2/src'
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/home/user/tmp/lua-5.2.2/src'
make: *** [linux] Error 2
libreadlineを調べてみると
$ ldd -r /usr/lib64/libreadline.so
linux-vdso.so.1 => (0x00007fffbe3aa000)
/$LIB/snoopy.so => /lib64/snoopy.so (0x00002b2a6a387000)
libc.so.6 => /lib64/libc.so.6 (0x00002b2a6a5af000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b2a6a907000)
/lib64/ld-linux-x86-64.so.2 (0x00002b2a69f29000)
undefined symbol: PC (/usr/lib64/libreadline.so)
undefined symbol: UP (/usr/lib64/libreadline.so)
undefined symbol: BC (/usr/lib64/libreadline.so)
undefined symbol: tgetflag (/usr/lib64/libreadline.so)
undefined symbol: tgetent (/usr/lib64/libreadline.so)
undefined symbol: tputs (/usr/lib64/libreadline.so)
undefined symbol: tgoto (/usr/lib64/libreadline.so)
undefined symbol: tgetnum (/usr/lib64/libreadline.so)
undefined symbol: tgetstr (/usr/lib64/libreadline.so)
こんな感じ。
これに関することが
このthread
にあったので、個々にある通り-ltermcap
を加えてみる。
$ make linux MYLIBS=-ltermcap
OK。$HOME/usr/local
にpacoに登録しつつインストール。
$ paco -D "make install INSTALL_TOP=$HOME/usr/local"
- Vimをインストール
ソースからコンパイルしてインストール。
$ cd ~/tmp/
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim/src
$ LDFLAGS="-L$HOME/usr/local/lib/" ./configure --with-lua-prefix=$HOME/usr/local --prefix=$HOME/usr/local --with-local-dir=$HOME/usr/local --disable-selinux --disable-xim --disable-darwin --disable-xsmp --disable-xsmp-interact --enable-netbeans --enable-multibyte --enable-gui=no --enable-gtk2-check=no --enable-gnome-check=no --enable-motif-check=no --enable-athena-check=no --enable-nextaw-check=no --enable-carbon-check=no --disable-gtktest --disable-acl --disable-gpm --disable-sysmouse --enable-luainterp=yes --enable-mzschemeinterp=no --enable-perlinterp=no --enable-pythoninterp=yes --enable-python3interp=yes --enable-tclinterp --enable-rubyinterp=yes --enable-cscope --disable-workshop --disable-sniff --enable-hangulinput --enable-fontset --enable-largefile --enable-nls
--enable-luainterp=yes
でluaオプションを有効にします。
他は適宣自分に合わせて設定。
LDFLAGS
や--with-local-dir
で$HOME/usr/local
にあるライブラリー等を使う様に
指定してますが、lua用に
--with-lua-prefix=$HOME/usr/local
が別途必要の様。
ちゃんとluaが見つかれば、./configure
時に、
...
checking if link with -L/home/user/usr/local/lib -llua is sane... yes
...
の様に見つかった、と言ってくれます。
--with-lua-prefix
を指定しないと/usr/
を見に行き、
checking --with-lua-prefix argument... no
checking LUA_PREFIX environment var... not set, default to /usr
checking --with-luajit... no
checking for lua... (cached) /usr/bin/lua
checking Lua version... (cached) 5.1
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.1... no
な感じで失敗します。
configureが成功したら
$ make && make install
- PATHの設定
$HOME/usr/local
にPATHが通ってない場合は以下の設定を~/.bashrc
に加えておきます。
1
|
|
Windows (Cygwin)
- setup.exeを使うかapt-cyg でluaをインストール:
apt-cygで
$ apt-cyg install lua
- Vimのインストール
現状のCygwinで配布されてるバイナリが1-1110, 1112-1152のパッチが当たっていて、 さらにLua対応でビルドされてるので、 最近インストールしたなら対応しているはずです。
もし対応してなかったり古い場合は取り直し。
apt-cygにはupdate
と言ったコマンドが無いので、一度削除してから入れなおします。
$ apt-cyg remove vim
そして新たにインストール:
$ apt-cyg install vim
Mac
- Homebrewを使ってLuaをインストール:
Homebrewでluaを
$ brew install lua
- HomebrewでMacVimのHEADバージョンをインストール1:
さらにvimも
$ brew install macvim --with-cscope --with-lua --HEAD
$ sudo ln -s /usr/local/Cellar/macvim/HEAD/MacVim.app /Applications/
- ターミナル等から使うため
~/.bashrc
に次を追加:
1 2 3 4 |
|
- ソースから直接コンパイルしてインストール
Homebrew版でも現状7.4b版がHEADで使えて、さらに--with-lua
オプションで
luaを有効に出来るので充分ですが、もしソースから直接コンパイルして
インストールしたい場合は
$ brew install mercurial
でMercurial(hg)をインストールしてから上のLinuxとかの様にhg
でソースを取ってきて
インストール。
最新パッチ&if_luaなMacVimで高速検索&補完!↩