Skip to content

Instantly share code, notes, and snippets.

@t9md
Last active March 16, 2019 01:15
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t9md/7904195 to your computer and use it in GitHub Desktop.
Save t9md/7904195 to your computer and use it in GitHub Desktop.
vital.vim チュートリアル

このドキュメントの状態(超ドラフト)

かなりドラフトの状態なので ウソ が含まれているかもしれない。

github vital.vim

vital.vim とは

ピュア Vim script で書かれた、便利なライブラリ集 .vimrc の中で気軽に使ったり、プラグイン作成者がライブラリとして利用する。 機能毎にモジュール化されており、自分が使用するモジュールの取り込んで利用することが可能。

複数のプラグイン開発者が同じような処理を各自で作る手間が省けて便利。

Quick Start

FAQ

プラグイン作者ではないけど関係ある?

.vimrc の中でも使えるので、.vimrc の記述が楽になるかもしれません。

プラグイン作者だけど、他のライブラリに依存したくないから興味ないです。

依存で面倒な事の一つは、最新バージョンに追随することです。
vital.vim はある特定時点での vital.vim のバージョンを各プラグインのディレクトリに
丸ごとコピーします。
ですので、最新バージョンの vital に追随して、プラグインを変更する必要性は生じません。

バージョンはどうやって管理しているの?バージョン番号は?

バージョン管理は git の hash 値を使用してこれを'特定の時点での vital のバージョン'を
示すものとして使っています。
vital はあなたが組み込んだ時点での git の hash 値を vital のバージョンとして、その内容が固定されます。

最新の vital に便利なモジュールがあるからプラグインに組み込んだ vital をアップデートしたいんだけど

可能です。以下の様にします。

TODO

いくつかモジュールを使ってるんですが、特定モジュールだけをアップデートしたいんだけど。

可能です。アップデートするモジュールを以下の様に指定します。

TODO

そもそも Vitalize ってなに?プラグインに組み込むってどういうこと?

短い説明:
vital をプラグインに組み込む。

長い説明:
Vitalize とはプラグインから vital.vim のモジュール(ライブラリ)を使えるように、
その時点での vital のモジュール集を、指定したプラグインのディレクトリにコピーすることです。

vital のモジュール集がプラグインのディレクトリ配下にコピーされたプラグインを vitalize されたプラグインと言います。

vitalize されたプラグインを使う時、注意する必要がある事ってなにかある?

使う側にとっては特に vital を意識する必要はありません。
すでにあなたが使用しているプラグインも裏で vital を使っているかもしれません。

自分のプラグインを vitalize したんだけど、どういう事に気をつける必要がある?

  • 必要なモジュールのみ取り込む。
  • モジュールのアップデート時にはアップデートしたモジュールに関わる部分の動作を確認する。
  • プラグイン名を変えた時は vital のどこか変えなきゃいけない?

インストール

NeoBundle 'vim-jp/vital.vim'

使い方

vital は vital オブジェクト(辞書)を取得して、その辞書関数を使う。

" vital オブジェクトを取得して V にセット
let V = vital#of('vital')

" vital.import({モジュール名}) でモジュール(ジャンル分けされた関数セット)を取得
" して、List という変数にセット
let List = V.import('Data.List')

" List モジュールの uniq 関数を読んで、重複のないエントリを取得。
echo List.uniq([1,2,2,3,3])
 " => [1, 2, 3]

上記のように、各モジュールが提供する便利な関数を利用することで、uniq() を各自が実装する必要がなくなる。

.vimrc の中で使う

使い方の例と特別な違いはない。

let s:V = vital#of('vital')
let s:List = V.import('Data.List')

モジュール一覧

参考リンク

@ujihisa
Copy link

ujihisa commented Dec 11, 2013

thincaさんのujihisa.vimでのプレゼン資料も参考になります
https://gist.github.com/thinca/4006236

@t9md
Copy link
Author

t9md commented Dec 11, 2013

おお!これは大分良い。お勉強しよう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment