Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Msys2のVimを+luaにする

More than 3 years have passed since last update.

Msys2のVimを+luaにする

Msys2にデフォルトで付いてくるVimは+luaでないため、neocompleteなどの+luaに依存するプラグインが使えません。+luaに依存するプラグインを使うためには、Vimを+luaでビルドする必要があります。ここでは、Msys2のVimを+luaでビルドする手順を説明します。

msys開発者ツールをインストールする

msys用ソフトウェアのビルドに最低限必要なツール群をインストールします。

pacman -S base-devel msys2-devel

luaをビルドする

Msys2ではmingw32とmingw64用のluaはパッケージとして入手できますが、msys用のluaは入手できません。Vimはmsysでビルドするため、msys用のluaを自力でビルドする必要があります。

luaをビルドするために必要なパッケージをインストールします。

pacman -S ncurses-devel libcrypt-devel gettext-devel

公式サイトからluaを落としてビルドします。

curl -O http://www.lua.org/ftp/lua-5.3.3.tar.gz
tar xzf lua-5.3.3.tar.gz
cd lua-5.3.3
make mingw
make install

lua53.dllだけインストールされないので手動でPATHが通っているディレクトリに移動させます。

Vimをビルドする

vimのビルドに必要なパッケージをインストールします。

pacman -S python3 ruby

MSYS2のパッケージ群をcloneします。

git clone https://github.com/Alexpux/MSYS2-packages.git

vim/PKGBUILDを次のように修正します。

--- a/vim/PKGBUILD
+++ b/vim/PKGBUILD
@@ -75,13 +75,15 @@ build() {
    # make distclean

    ./configure \
+       --enable-fail-if-missing \
        --prefix=/usr \
        --build=${CHOST} \
        --with-features=huge \
        --with-tlib=ncursesw \
        --enable-cscope \
        --enable-multibyte \
-       --enable-luainterp=dynamic \
+       --enable-luainterp \
+       --with-lua-prefix=/usr/local \
        --enable-perlinterp=dynamic \
        --enable-pythoninterp=dynamic \
        --enable-python3interp=dynamic \

ビルドしてインストールします。

makepkg
pacman -U vim(version).pkg.tar.gz

+luaになっているか確認

vim --version | grep lua

+luaが出てくればOKです。お疲れ様でした。

tomota-tar-gz
電子楽器の組み込みソフト屋さんだった犬です。 プログラミングに直接関係することはqiitaに、人とかチーム向けのアレコレはhatenaにまとめています。
http://tomota-tar-gz.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away