Vim Advent Calendar 2014の四日目です。昨日はVimにrevコマンドを実装してみたでした。明日は217さんです。
いま一番もとめてゐるのは縱書き[縦書キ]ですが、Vimを最新に更新します。
Vimのソースコードを更新する
Mercurialで公式のリポジトリから落としてゐるとおもひます (落としてください)。 ~/dev/vim に落としてあるとします。
cd ~/dev/vim hg pull -u
以上です。
Vimをコンパイルする
Debian (Ubuntu) でVimを、機能アリアリでbuildする http://c4se.hatenablog.com/entry/2014/09/21/181104に書いてあります。以上です。
これらを自動でやると、
cd ~/dev/vim hg pull -u cd src CC=clang ./configure --with-features=huge --disable-darwin --enable-gui=gnome2 --enable-xim --enable-tclinterp --enable-mzschemeinterp --enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --with-luajit --enable-fail-if-missing make -j4 sudo make install
となります。
Vimのpluginを更新する
NeoBundleで管理してゐるとします。Vundleにも応用できます。pathogen.vimやvim-flavorやVAMを使うてゐる方は我ん張ってください。
NeoBundleは:NeoBundleUpdate
でNeoBundle下のpluginを全て更新できます。これをbashから実行できればよろしい。また、.gvimrcで管理してゐるものもあるので、GVimを立ち上げて実行したい。また、更新が終わるのを検知したいので、GVimをフォアグラウンドで実行したい。これは以下で実行できます。
vim -g -f -c "silent exe 'NeoBundleUpdate | q'" &> /dev/null
GVimを立ち上げ、且つフォアグラウンドで立ち上げ、silent exe 'NeoBundleUpdate | q'
をVim Scriptとしてとして実行します。exeコマンドは文字列をコマンドとして実行します。NeoBundleUpdate | qは、NeoBundle下のpluginを更新した後、Vimを終了します。NeoBundleUpdateの出力に手動で対応しなくても済ませる爲[為]にsilentで実行します。
自動でVimの全てを最新に保つ
以上を合はせて自動でやります。繰り返しますがVimのソースコードは~/dev/vimに有ることとします。適宜書き換へてください。
function update-vim() { local cwd=$(pwd) if test "$NO_SSH" != "1"; then cd ~/dev/vim hg pull -u cd src CC=clang ./configure --with-features=huge --disable-darwin --enable-gui=gnome2 --enable-xim --enable-tclinterp --enable-mzschemeinterp --enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --with-luajit --enable-fail-if-missing make -j4 sudo make install fi if test "$NO_SSH" != "1"; then vim -g -f -c "silent exe 'NeoBundleUpdate | q'" &> /dev/null fi cd $cwd }
以上です。これをもっと大きな、システム全てを最新に保つ以下のコマンドのなかで呼び出してゐます。
function update-all() { sudo apt update sudo aptitude safe-upgrade -y sudo apt-get autoremove sudo apt-get autoclean if test "$NO_SSH" != "1"; then anyenv update fi sudo gem update sudo npm -g update &> /dev/null sudo pip-review --auto sudo composer self-update anyenv exec rehash update-vim sudo updatedb }
因みにサーバーではなくラップトップPCです。