Vital.vim をインストールした

vital.vim とは.

vital.vim とは
  • Vim script のライブラリ群
  • モジュールと言う単位で管理される
  • モジュールは関数の集まり
  • プラグインに組み込んで使う
どんなメリットがあるの?
  • プラグイン同梱
    • ユーザが個別にインストールせずに済む
  • バージョンの混在が可能
デメリットは?
  • ちょっと大掛かり
    • 小物に入れるのはためらわれる
vital.md · GitHub


vim-pukiwiki はとっても小物ですが, オリジナル版は alice.vim を利用して作られていてその依存をなくしたい.
vimの勉強ついでに vital.vim もいれてみることにした.

インストール

とにもかくにも NeoBundle でインストールする.

 NeoBundle 'https://github.com/vim-jp/vital.vim.git'

vitalizer

 :Vitalize [options] {target-dir} [{module} ...]
  • ということは最初にどんなモジュールがあるかを知らなければならない.
    1. curl (HTTP) 部分 (vital-web-http.txt?)
    2. alice.vim 部分 (vital-system-file.txt?)
      1. ファイル操作
      2. system まわりか
  • doc 配下のファイルで想像できるけどそもそもモジュール一覧はどこにある?
    • vital.vimcurl 必須らしい...
    • vimproc 呼び出す system 関数もありそうなものなのにドキュメントには見当たらない
      • 'Prelude' なの? system しかないの?
      • is_dict とかあった.
      • system だけほしい場合もなんかいれないとだめっぽい
    let V = vital#of('ujihisa')
    function! ujihisa#util#system(...)
      return call(V.system, a:000, V)
    endfunction
https://github.com/vim-jp/vital.vim/blob/master/doc/vital.txt
  • とりあえず web-http を入れる
 :Vitalize . Web.Http
  • 以下がインストールされた
 ./autoload
 ./autoload/vital.vim
 ./autoload/vital
 ./autoload/vital/_502eb72.vim
 ./autoload/vital/_502eb72
 ./autoload/vital/_502eb72/web
 ./autoload/vital/_502eb72/web/http.vim
 ./autoload/vital/_502eb72/data
 ./autoload/vital/_502eb72/data/list.vim
 ./autoload/vital/_502eb72/data/string.vim
 ./autoload/vital/_502eb72/prelude.vim
 ./autoload/vital/vim-pukiwiki.vital
 502eb72
 
 Web.Http

使ってみる

escape
 let VITAL = vital#of('vital')
 let HTTP = VITAL.import('Web.Http')
 echo HTTP.escape("ほげ")

alice.vim の廃止からにしよう.

System.File の追加インストール

 :Vitalize . +System.File
  • 以下がインストールされた
  ./autoload
  ./autoload/vital.vim
  ./autoload/vital
  ./autoload/vital/_502eb72.vim
  ./autoload/vital/_502eb72
  ./autoload/vital/_502eb72/web
  ./autoload/vital/_502eb72/web/http.vim
 +./autoload/vital/_502eb72/system
 +./autoload/vital/_502eb72/system/file.vim
  ./autoload/vital/_502eb72/data
  ./autoload/vital/_502eb72/data/list.vim
  ./autoload/vital/_502eb72/data/string.vim
  ./autoload/vital/_502eb72/prelude.vim
  ./autoload/vital/vim-pukiwiki.vital
  • 以下のようにすると Web.Http はアンインストールされて, System.File だけになる.
 :Vitalize . System.File
  • しかし良く見ると関数があまり用意されていなかった.
    • むむむ.

Q まとめ

  • Q1) doc 配下のファイルで想像できるけどそもそもモジュール一覧はどこにある?
  • A1) 現状ないらしい.
  • Q2) vimproc 呼び出す system 関数もありそうなものなのにドキュメントには見当たらない
    • 'Prelude' なの? system しかないの?
  • A2) 'Prelude' が system 関数をもっているモジュールで, その help は現状ないらしい.
  • Q3) system とかの基本モジュール( Prelude? )だけほしい場合もなんかいれないとだめっぽい?
  • A3) Prelude をモジュール名に指定すればいい.
:Vitalize . Prelude