Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

最新のVimを使うためcrontabで1日1回チェックするようにした

$
0
0

TL;DR

OSはLinux Mint(Cinnamon)

依存するパッケージをインストールして

sudo apt-get install git gettext libncurses5-dev libacl1-dev libgpm-dev \
    libxmu-dev libgnomeui-dev libxpm-dev \
    libperl-dev python-dev python3-dev ruby-dev luajit libluajit-5.1

次にgitvimのリポジトリを引っ張っておく

git clone git@github.com:vim/vim.git ~/.local/src/vim

更新用のシェルスクリプトを書いて

$HOME/.cron/vim-okkake.sh
#/usr/bin/env bashset -e
cd${HOME}/.local/src/vim
git pull
./configure --with-features=huge --enable-gui=gnome2 \
    --enable-perlinterp --enable-pythoninterp \
    --enable-python3interp --enable-rubyinterp \
    --enable-luainterp --with-luajit \
    --enable-fail-if-missing \
    --prefix=${HOME}/.local
make
make install

crontab -eで以下を追記(1日1回行う設定)

0 0 * * * $HOME/.cron/vim-okkake.sh 2>> $HOME/.cron/vim-okkake.log

$HOME/.local/binにパスを通しておくと

vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 21 2016 00:00:10)
適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+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            +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      
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/home/foo/.local/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
リンク: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E   -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl    -lacl -lattr -lgpm -ldl  -L/usr/lib/x86_64-linux-gnu -lluajit-5.1 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt    -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm  

以上

動機

Vimのバージョンをcronで毎日上げ続け、最新のパッチを確認し続ける日々を送ってきました。そして、今日も夜11時のcronでバージョンが上がりました。新しいメジャーバージョン、8.0でした。
Vim 8.0 リリース! - プログラムモグモグより引用)

  • Vim 8.0を使ってみたかった
  • どうせ使うなら最新の物を使おう

以下試行錯誤の記録

とりあえず標準でbuild出来るか確かめる

git@github.com:vim/vim.git
cd vim
./configure

エラー

configure: loading cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/foo/.local/src/vim/src':
configure: error: C compiler cannot create executables
See `config.log' for more details

config.logどこに生成されたんだ?
http://vim-jp.org/docs/build_linux.html
を読んで以下をインストール

sudo apt-get install git gettext libncurses5-dev
  libacl1-dev libgpm-dev

./configureする.

./configure

動いた
インストール場所の設定をしていなかった

 ./configure --prefix=${HOME}/.local

PATHにも追加しておく

export PATH="$HOME/.local/bin:$PATH"

make installして

make install

動いた

vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 152016 19:32:29)適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+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            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      -python3         +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      
      システム vimrc: "$VIM/vimrc"ユーザー vimrc: "$HOME/.vimrc"第2ユーザー vimrc: "~/.vim/vimrc"ユーザー exrc: "$HOME/.exrc"デフォルトファイル: "$VIMRUNTIME/defaults.vim"省略時の $VIM: "/home/foo/.local/share/vim"コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1リンク: gcc   -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lacl -lattr -lgpm -ldl 

この状態だとluaとかの機能が有効になっていない.
上のリンクに有った(表記上の)全てを入れてみよう.
luajitの方が速いらしいのでそっちを優先した形.

sudo apt install libxmu-dev libgnomeui-dev libxpm-dev \
libperl-dev python-dev python3-dev ruby-dev luajit libluajit-5.1
./configure --with-features=huge --enable-gui=gnome2 \
  --enable-perlinterp --enable-pythoninterp \
  --enable-python3interp --enable-rubyinterp \
  --enable-luainterp --with-luajit \
  --enable-fail-if-missing \
  --prefix=${HOME}/.local
vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 162016 16:08:51)適用済パッチ: 1-5
Compiled by foo@bar
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+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            +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      
      システム vimrc: "$VIM/vimrc"ユーザー vimrc: "$HOME/.vimrc"第2ユーザー vimrc: "~/.vim/vimrc"ユーザー exrc: "$HOME/.exrc"デフォルトファイル: "$VIMRUNTIME/defaults.vim"省略時の $VIM: "/home/foo/.local/share/vim"コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1リンク: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E   -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl    -lacl -lattr -lgpm -ldl  -L/usr/lib/x86_64-linux-gnu -lluajit-5.1 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.22/CORE -lperl -ldl -lm -lpthread -lcrypt    -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm    

lua等有効になってるけどgvimが生成されていないぞ(結局わからなかった)

更新用のスクリプトを書いて.

$HOME/.cron/vim-okkake.sh
#/usr/bin/env bashset -e
cd${HOME}/.local/src/vim
git pull
./configure --with-features=huge --enable-gui=gnome2 \
    --enable-perlinterp --enable-pythoninterp \
    --enable-python3interp --enable-rubyinterp \
    --enable-luainterp --with-luajit \
    --enable-fail-if-missing \
    --prefix=${HOME}/.local
make
make install

crontab -eで追記

0 0 * * * $HOME/.cron/vim-okkake.sh 2>> $HOME/.cron/vim-okkake.log

終わり


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>