概要
なんとなくBash on Ubuntu on Windowsを入れて、とりあえずVimを自前ビルドしたのでその作業メモです。
luaとか有効にしてます。(オプションは後述)
(Bash on Ubuntu on Windowsの入れ方とかは他記事におまかせするとします。)
環境
- Windows 10 Pro 64bit 1607
必要なパッケージのインストール
適当に指定しているので、もしかしたら不要なものも含まれているかもしれませんが...
ざくっと以下を実行。
$ sudo apt-get install git cpp gcc autoconf automake make lua5.2 luajit liblua5.2-0 liblua5.2-dev libperl5.18 libperl-dev python-dev python3-dev ruby ruby-dev tcl tcl-dev
パッケージリストを読み込んでいます... 完了%依存関係ツリーを作成しています状態情報を読み取っています... 完了%以下のパッケージが自動でインストールされましたが、もう必要とされていません: libfreetype6 os-proberこれを削除するには 'apt-get autoremove' を利用してください。以下の特別パッケージがインストールされます: autotools-dev binutils build-essential cpp-4.8 dpkg-dev fakeroot g++ g++-4.8 gcc-4.8 git-man libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan0 libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libdpkg-perl liberror-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1 libltdl-dev libltdl7 libluajit-5.1-common libmpc3 libmpfr4 libpython-dev libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0 libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6 libtinfo-dev libtool libtsan0 linux-libc-dev m4 manpages-dev pkg-config python2.7-dev python3.4-dev ruby1.9.1 ruby1.9.1-dev tcl8.6 tcl8.6-dev zlib1g-dev提案パッケージ: autoconf2.13 autoconf-archive gnu-standards autoconf-doc gettext binutils-doc cpp-doc gcc-4.8-locales debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib automake1.9 flex bison gdb gcc-doc gcc-4.8-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg libtsan0-dbg libquadmath0-dbg git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-bzr git-cvs git-mediawiki git-svn glibc-doc libtool-doc libstdc++-4.8-doc automaken gfortran fortran95-compiler gcj-jdk make-doc ri ruby1.9.1-examples ri1.9.1 graphviz ruby-switch tcl-doc tcl-tclreadline tcl8.6-doc以下のパッケージが新たにインストールされます: autoconf automake autotools-dev binutils build-essential cpp cpp-4.8 dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git git-man libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan0 libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libdpkg-perl liberror-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libisl10 libitm1 libltdl-dev libltdl7 liblua5.2-0 liblua5.2-dev libluajit-5.1-common libmpc3 libmpfr4 libperl-dev libperl5.18 libpython-dev libpython2.7-dev libpython3-dev libpython3.4 libpython3.4-dev libquadmath0 libreadline-dev libreadline6-dev libruby1.9.1 libstdc++-4.8-dev libtcl8.6 libtinfo-dev libtool libtsan0 linux-libc-dev lua5.2 luajit m4 make manpages-dev pkg-config python-dev python2.7-dev python3-dev python3.4-dev ruby ruby-dev ruby1.9.1 ruby1.9.1-dev tcl tcl-dev tcl8.6 tcl8.6-dev zlib1g-devアップグレード: 0 個、新規インストール: 76 個、削除: 0 個、保留: 0 個。95.0 MB のアーカイブを取得する必要があります。この操作後に追加で 256 MB のディスク容量が消費されます。続行しますか? [Y/n] y (ログは省略)
githubからソースをclone
特に解説することもないですね。
$cd /usr/local/src
$ sudo chmod a+w .
$ git clone https://github.com/vim/vim.git
configure && make && make install
いつも使ってるビルドオプションをそのまま指定しました。--enable-fail-if-missing
を指定していると足りないパッケージがあるとエラーになるので便利です。(つい最近知りました...)
$cd vim
$ ./configure --with-features=huge \ --disable-darwin \ --disable-selinux \ --enable-fail-if-missing \ --enable-luainterp \ --enable-perlinterp=dynamic \ --enable-pythoninterp \ --enable-python3interp \ --enable-tclinterp \ --enable-rubyinterp \ --enable-cscope \ --enable-multibyte \ --enable-xim \ --enable-fontset \ --with-compiledby=xxxkurosukexxx \ --enable-gui=no \ --prefix=/usr/local (ログは省略)$ make
(ログは省略)$ sudo make install
(ログは省略)
無事ビルドできました
(参考)デフォルトで入っていたVim
$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:32)適用済パッチ: 1-52Modified by pkg-vim-maintainers@lists.alioth.debian.orgCompiled by buildd@Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)+acl +farsi +mouse_netterm +syntax+arabic +file_in_path +mouse_sgr +tag_binary+autocmd +find_in_path -mouse_sysmouse +tag_old_static-balloon_eval +float +mouse_urxvt -tag_any_white-browse +folding +mouse_xterm -tcl++builtin_terms -footer +multi_byte +terminfo+byte_offset +fork() +multi_lang +termresponse+cindent +gettext -mzscheme +textobjects-clientserver -hangul_input +netbeans_intg +title-clipboard +iconv +path_extra -toolbar+cmdline_compl +insert_expand -perl +user_commands+cmdline_hist +jumplist +persistent_undo +vertsplit+cmdline_info +keymap +postscript +virtualedit+comments +langmap +printer +visual+conceal +libcall +profile +visualextra+cryptv +linebreak +python +viminfo+cscope +lispindent -python3 +vreplace+cursorbind +listcmds +quickfix +wildignore+cursorshape +localmap +reltime +wildmenu+dialog_con -lua +rightleft +windows+diff +menu -ruby +writebackup+digraphs +mksession +scrollbind -X11-dnd +modify_fname +signs -xfontset-ebcdic +mouse +smartindent -xim+emacs_tags -mouseshape -sniff -xsmp+eval +mouse_dec +startuptime -xterm_clipboard+ex_extra +mouse_gpm +statusline -xterm_save+extra_search -mouse_jsbterm -sun_workshop -xpmシステム vimrc: "$VIM/vimrc"ユーザ vimrc: "$HOME/.vimrc"第2ユーザ vimrc: "~/.vim/vimrc"ユーザ exrc: "$HOME/.exrc"省略時の $VIM: "/usr/share/vim"コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1リンク: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
(参考)今回ビルドしたVim
$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 30 2016 14:48:00)Included patches: 1-19Compiled by xxxkurosukexxxHuge version without GUI. Features included (+) or not (-):+acl +file_in_path +mouse_sgr +tag_old_static+arabic +find_in_path -mouse_sysmouse -tag_any_white+autocmd +float +mouse_urxvt +tcl-balloon_eval +folding +mouse_xterm +termguicolors-browse -footer +multi_byte +terminfo++builtin_terms +fork() +multi_lang +termresponse+byte_offset -gettext -mzscheme +textobjects+channel -hangul_input +netbeans_intg +timers+cindent +iconv +num64 +title-clientserver +insert_expand +packages -toolbar-clipboard +job +path_extra +user_commands+cmdline_compl +jumplist +perl/dyn +vertsplit+cmdline_hist +keymap +persistent_undo +virtualedit+cmdline_info +lambda +postscript +visual+comments +langmap +printer +visualextra+conceal +libcall +profile +viminfo+cryptv +linebreak +python/dyn +vreplace+cscope +lispindent +python3/dyn +wildignore+cursorbind +listcmds +quickfix +wildmenu+cursorshape +localmap +reltime +windows+dialog_con +lua +rightleft +writebackup+diff +menu +ruby -X11+digraphs +mksession +scrollbind -xfontset-dnd +modify_fname +signs -xim-ebcdic +mouse +smartindent -xpm+emacs_tags -mouseshape +startuptime -xsmp+eval +mouse_dec +statusline -xterm_clipboard+ex_extra -mouse_gpm -sun_workshop -xterm_save+extra_search -mouse_jsbterm +syntax+farsi +mouse_netterm +tag_binary system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" 2nd user vimrc file: "~/.vim/vimrc" user exrc file: "$HOME/.exrc" defaults file: "$VIMRUNTIME/defaults.vim" fall-back for $VIM: "/usr/local/share/vim"Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1Linking: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -L/build/buildd/ruby1.9.1-1.9.3.484/debian/lib -rdynamic -Wl,-export-dynamic -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lnsl -ldl -L/usr/lib -llua5.2 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib
こちらからは以上ですー。
良きVimライフを!