vital.vim
A comprehensive Vim utility functions for Vim plugins.
This is like a plugin which has both aspects of Bundler and jQuery at the same time.
Targets
If you are a Vim user who don't make Vim plugins, please ignore this page.
If you are a Vim plugin author, please check this out.
What vital.vim provides
system()
- If user has
vimproc
, this usesvimproc#system()
, otherwise just the Vim builtinsystem()
.
- If user has
- ... (all public functions in unite/util.
How to use
Assuming your Vim plugin name is ujihisa
. You can define your utility
function set ujihisa#util
just by
let V = vital#of('ujihisa')
function! ujihisa#util#system(...)
return call(V.system, a:000, V)
endfunction
and then you can call functions by ujihisa#util#system()
, without taking care
of vital.vim
itself. It's all hidden.
Vital has module system. The below is an example to import/load a module
Data.OrderedSet
and to call a function f()
of the module.
let V = vital#of('ujihisa')
let O = V.import('Data.OrderedSet')
call O.f()
or
let V = vital#of('ujihisa')
call V.load('Data.OrderedSet')
call V.Data.OrderedSet.f()
or
let V = vital#of('ujihisa')
call V.import('Data.OrderedSet', s:)
call s:f()
We recommend you to use a capital letter for a Vital module dictionary to assign.
If you want to become a vital committer
References
- How to use vital.vim (in Japanese)
- This is beautiful
- Delegation in Vim script
- Core concept of vital (in Japanese)
- How to make a vital module (in Japanese)
Authors
- thinca
- ujihisa (Tatsuhiro Ujihisa)
- tyru
- mattn
- Shougo
- ... and lots more https://github.com/vim-jp/vital.vim/graphs/contributors
License
What's NYSL? and Why you chose it?
NYSL is a very loose license like a Beer License, or more like WTFPL. See NYSL for details. (English and Japanese)
First, vital.vim is a bundling (static) library. We think everyone should be able to use it easily, without worrying about licensing stuff too much.
Second, In Japan, Strict Public Domain might be invalid. You outside Japan may interpret simply the license as Public Domain.
That's why we chose NYSL.
(See vim-jp#26 about the discussion.)