Giter Site home page Giter Site logo

bimlas / vital.vim Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vim-jp/vital.vim

0.0 3.0 0.0 2.96 MB

A comprehensive Vim utility functions for Vim plugins

Vim Script 97.37% Lua 1.56% Ruby 0.20% Shell 0.11% Go 0.49% C 0.25% Python 0.03%

vital.vim's Introduction

vital.vim Build Status Build status

Join the chat at https://gitter.im/vim-jp/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 doesn't make Vim plugins, please ignore this page.

If you are a Vim plugin author, please check this out.

What vital.vim provides

Module Description
Assertion assertion library
Bitwise bitwise operators
ConcurrentProcess manages processes concurrently with vimproc
Data.Base64 base64 utilities library
Data.BigNum multi precision integer library
Data.Closure Provide Closure object
Data.Collection Utilities both for list and dict
Data.Counter Counter library to support convenient tallies
Data.Dict dictionary utilities library
Data.LazyList lazy list including file io
Data.List list utilities library
Data.Optional optional value library
Data.OrderedSet ordered collection library
Data.String string utilities library
Data.Tree tree utilities library
Database.SQLite sqlite utilities library
DateTime date and time library
Experimental.Functor Utilities for functor
Interpreter.Brainf__k Brainf**k interpreter
Locale.Message very simple message localization library
Lua.Prelude crucial functions for lua integration
Mapping Utilities for mapping
Math Mathematical functions
OptionParser Option parser library for Vim
Prelude crucial functions
Process Utilities for process
ProcessManager process manager with vimproc
Random.Mt19937ar random number generator using mt19937ar
Random.Xor128 random number generator using xor128
Random Random utility frontend library
System.Process A cross-platform process utilities
System.Cache An unified cache system
System.File filesystem utilities library
System.Filepath path string utilities library
Text.CSV CSV library
Text.INI INI file library
Text.LTSV LTSV library
Text.Lexer lexer library
Text.Parser parser library
Text.Sexp S-Expression parser
Text.TOML TOML library
Text.Table Character table library
Vim.Buffer Vim's buffer related stuff in general
Vim.BufferManager buffer manager
Vim.Compat Vim compatibility wrapper functions
Vim.Python +python/+python3 compatibility functions
Vim.Message Vim message functions
Vim.Search Vim's [I like function
Vim.ScriptLocal Get script-local things
Vim.ViewTracer Trace window and tabpage
Vim.Guard Guard options/variables
Web.HTML HTML parser written in pure Vim script
Web.HTTP simple HTTP client library
Web.JSON JSON parser written in pure Vim script
Web.URI URI manipulation library
Web.XML XML parser written in pure Vim script

... and you can also create your own vital modules. Please see External vital modules for more information.

Let's get started

Install modules for your own plugin

Use :Vitalize to install modules. Please see the help for more details.

:Vitalize --name=your_plugin_name $HOME/.vim/bundle/your_plugin_dir/

You can also install only specified modules; recommended for making your repository size small, assuming you are going to upload it to a remote repository

:Vitalize --name=your_plugin_name $HOME/.vim/bundle/your_plugin_dir/ Data.String Data.List

Use vital functions

Assuming your Vim plugin name is ujihisa. You can define your utility function set ujihisa#util just by

let s:V = vital#ujihisa#new()
function! ujihisa#util#system(...)
  return call(s:V.system, a:000, s: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.

" Recommented way
let s:V = vital#ujihisa#new()
let s:O = s:V.import('Data.OrderedSet')
call s:O.f()

or

" Recommended way only if you rarely use the module
let s:V = vital#ujihisa#new()
call s:V.load('Data.OrderedSet')
call s:V.Data.OrderedSet.f()

or

" Available, but we don't recommend this very much
let s:V = vital#ujihisa#new()
call s:V.import('Data.OrderedSet', s:)
call s:f()

We recommend you to use a capital letter for a Vital module dictionary to assign.

Plugins Using vital.vim

A lot of vim plugins are using vital.vim

Badges

It is not necessary but we recommend to add a badge to your project README to make the vital.vim developers happy ;-) The following is a markdown snippet.

[![Powered by vital.vim](https://img.shields.io/badge/powered%20by-vital.vim-80273f.svg)](https://github.com/vim-jp/vital.vim)

The badge uses Shields.io so you can customize the looks as like:

  • Powered by vital.vim (Default)
  • Powered by vital.vim by adding ?style=plastic
  • Powered by vital.vim by adding ?style=flat
  • Powered by vital.vim by adding ?style=flat-square

If you want to become a vital developer

Become a vital.vim Developer

References

Authors

License

NYSL

Japanese original text: http://www.kmonos.net/nysl/

What's NYSL? and Why did we 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.)

vital.vim's People

Contributors

thinca avatar ujihisa avatar tyru avatar lambdalisue avatar haya14busa avatar rhysd avatar mattn avatar shougo avatar syngan avatar rbtnn avatar crazymaster avatar kamichidu avatar aomoriringo avatar deris avatar cohama avatar umireon avatar hattya avatar itchyny avatar ichizok avatar aiya000 avatar milly avatar raa0121 avatar ryunix avatar zoncoen avatar kozo2 avatar anekos avatar basyura avatar kannokanno avatar y0za avatar tacahiroy avatar

Watchers

James Cloos avatar Bimba Laszlo avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.