vim with lua
This is a log of the steps I took to compile vim with lua support. I wrapped everything up in a script that I called ’luavim’. I have tested it on CentOS/RedHat, Debian/Ubuntu and Alpine Linux.
Dependencies are:
-
Libraries: libreadline, libcurses, glibc/musl
-
Packages: git, gcc, make
To install the dependencies for Alpine Linux:
# apk add musl-dev git gcc make readline-dev ncurses-dev
To install the dependencies for Debian/Ubuntu:
# apt install gcc make libreadline-dev libncurses-dev
To install the dependencies for CentOS/RedHat, you can run:
# yum install git gcc make readline-devel ncurses-devel
Everything gets installed into /usr/local. The user running this script must have sudo.
This is the script:
#!/bin/sh
operator=$(whoami)
srcdir=/opt/src
main() {
if [ -z $1 ]
then
usage
fi
init
case "$1" in
a) buildlua; buildvim ;;
l) buildlua ;;
v) buildvim ;;
r) reset ;;
*) echo "invalid"; usage ;;
esac
}
init() {
if [ ! -d ${srcdir} ]
then
sudo mkdir -pv ${srcdir}
fi
sudo chown -R ${operator} ${srcdir}
}
buildlua() {
cd ${srcdir}
if [ ! -d lua ]
then
echo "Cloning github lua repository..."
git clone https://github.com/lua/lua.git
fi
cd ${srcdir}/lua
make clean
git pull
sudo make uninstall
make linux -j 4
sudo make install
lua -v
}
buildvim() {
cd ${srcdir}
if [ ! -d vim ]
then
echo "Cloning github lua repository..."
git clone https://github.com/vim/vim.git
fi
cd ${srcdir}/vim
make clean
git pull
./configure
--with-compiledby=lyderic
--with-features=huge
--enable-luainterp
--with-lua-prefix=/usr/local
--enable-fail-if-missing
sudo make uninstall
make -j 4
sudo make install
}
reset() {
cd ${srcdir}/lua
sudo make uninstall
cd ${srcdir}/vim
sudo make uninstall
sudo rm -rfv ${srcdir}
}
usage() {
echo "Usage: $(basename $0) "
echo "Actions:"
echo " a build lua and vim"
echo " l build lua only"
echo " v build vim only"
echo " r wipe everything"
exit 2
}
main $@