ElementaryOS で Vim をビルドしてみた
logs vim
elementary OSにて、Vim 8.1 を使いたかったので最新版をソースファイルからビルドてみました。vim-jp.org にてまとめられているページに必要な内容は全て記載されているので、そちらを参考にするべきです - Linuxでのビルド方法 | vim-jp 。本記事は、個人的な記録です。
- 実行環境
- elementary OS 5.0 Juno (Ubuntu 18.04 LTSベース)
- vim v8.1.0818
モチベーション
自宅の MacOS で書きかけていた VimScript を ElementaryOS で動作確認した際に、 appendbufline()
の呼び出し箇所で Unknown function
とのエラーを吐きました。ヘルプには記載があるのになんで? とあれこれ調べて見ると、どうやら Vim8.1 で追加された関数らしい。
しかし、ubuntu の apt では最新の Vim は入らないとのこと - Linuxちからの低い私には細かいことはよくわからないけれど、Ubuntu 公式リポジトリでバージョンが固定されてるとかなんとか。apt コマンドで確認してみても、なるほど確かに 8.0 を指しているようです。
$ apt show vim
Package: vim
Version: 2:8.0.1453-1ubuntu1
ということで最新のソースファイルを取得して、Vim をビルドしてみましょう。
やったこと
冒頭にも書いたとおり、 vim-jp.org に必要な情報は 日本語で 書いてあります🤗 本当にありがたいですね。コミュニティの皆様に感謝しつつ、記載どおり実行してゆきましょう。Linuxでのビルド方法 | vim-jp
buildに必要なパッケージを取得
apt でソースファイルからのビルドに必要な諸々が導入されます。
$ sodo apt build-dep vim
個人的には、lua拡張をつかったプラグインも導入したいので、以下で依存パッケージを導入しておきます。
$ sudo apt install lua5.2 liblua5.2-dev
ソースファイルの取得
Github にて公開されているリポジトリ vim/vim をクローンして最新ソースファイルを取得します。私はローカルリポジトリは ghq で管理しているので、Github からのリポジトリクローンはghq get
で行います。もちろん、素の git コマンドでクローンしても何も変わりません。
$ ghq get https://github.com/vim/vim.git
$ ghq look vim/vim
オプション設定 & ビルド
オプションを指定してビルドします。python3連携 と lua連携 を有効にしましたが、もちろんここら辺はお好みでの設定です。というか、オプションが多すぎてびっくりしました。
$ ./configure --prefix=/usr/local \
--with-features=huge \
--enable-multibyte \
--enable-pythoninterp \
--enable-python3interp \
--enable-luainterp \
--enable-fail-if-missing
$ make
ちなみに、Twitter でつぶやいたら、 @uochan さん にビルド時のおすすめオプションを教えてもらいました。ありがたやー。参考: liquidz/cookbooks
インストール
生成された実行ファイルをインストールします。
$ sudo make install
ビルド時のオプションにて、--prefix=/usr/local
を指定しているので、/usr/local/bin/vim
にインストールされました。/usr/bin/vim
に以前のバージョンが残ったままですが、まあPATH指定で/usr/local/bin
が上位になってるので、気にしない。(雑)
確認
実行できるか、確認してみましょう。
$ type vim
vim is hashed (/usr/local/bin/vim)
$ vim -version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Jan 27 2019 15:36:11)
ということで、無事 Vim8.1 がインストールできました😋
appendbufline()
が動くことも確認して一安心。
あとがき
ビルド時のオプションなど、必要に応じて色々調整して行きたいという気持ち。
おわり
comments powered by Disqus