Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the L9 vim plugin for?

Tags:

vim

plugins

I recently bumped into this weird plugin for Vim and could not figure out what is its use.

It is almost not documented and nobdy really talks about it, but it seems important for some other plugins.

All I found is here:

http://www.vim.org/scripts/script.php?script_id=3252

and

https://github.com/eparreno/vim-l9

but they just say "It is a library" and "See the sourcecode".

Anyone knows what it this lib for, if I should have it, for what purpose, or if I can just delete it until some dependency is unmet in some other plugin ?

like image 544
deb0ch Avatar asked Aug 23 '15 09:08

deb0ch


1 Answers

I’ve noticed references to L9 in a couple places, recently from Vundle. True, it’s not documented at the outset. But there’s decent commentary in the main source file, autoload/l9.vim. It’s a set of general purpose utility functions. Here is the bulk of its API, augmenting Vim’s treatment of lists, numbers, strings, lines, paths, files, buffers, windows, search, and more:

" returns false if the caller script should finish.
" a:vimVersion: if 0, don't check vim version
" a:l9Version: same rule as v:version
function l9#guardScriptLoading(path, vimVersion, l9Version, exprs)

" Removes duplicates (unstable)
" This function doesn't change the list of argument.
function l9#unique(items)

" [ [0], [1,2], [3] ] -> [ 0, 1, 2, 3 ]
" This function doesn't change the list of argument.
function l9#concat(items)

" [ [0,1,2], [3,4], [5,6,7,8] ] -> [ [0,3,5],[1,4,6] ]
" This function doesn't change the list of argument.
function l9#zip(items)

" filter() with the maximum number of items
" This function doesn't change the list of argument.
function l9#filterWithLimit(items, expr, limit)

" Removes if a:expr is evaluated as non-zero and returns removed items.
" This function change the list of argument.
function l9#removeIf(items, expr)

" Snips a:str and add a:mask if the length of a:str is more than a:len
function l9#snipHead(str, len, mask)

" Snips a:str and add a:mask if the length of a:str is more than a:len
function l9#snipTail(str, len, mask)

" Snips a:str and add a:mask if the length of a:str is more than a:len
function l9#snipMid(str, len, mask)

" wildcard -> regexp
function l9#convertWildcardToRegexp(expr)

" Removes from the line matching with a:begin first to the line matching with
" a:end next and returns removed lines.
" If matching range is not found, returns []
function l9#removeLinesBetween(lines, begin, end)

" returns the path separator charactor.
function l9#getPathSeparator()

" [ 'a', 'b/', '/c' ] -> 'a/b/c'
function l9#concatPaths(paths)

" path: '/a/b/c/d', dir: '/a/b' => 'c/d'
function l9#modifyPathRelativeToDir(path, dir)

" Almost same as readfile().
function l9#readFile(...)

" Almost same as writefile().
function l9#writeFile(...)

" :wall/:wall! wrapper. Useful for writing readonly buffers.
function l9#writeAll()

" Loads given files with :edit command
function l9#loadFilesToBuffers(files)

" Deletes all buffers except given files with :bdelete command
function l9#deleteAllBuffersExcept(files)

" move current window to next tabpage.
function l9#shiftWinNextTabpage()

" move current window to previous tabpage.
function l9#shiftWinPrevTabpage()

" move to a window containing specified buffer.
" returns 0 if the buffer is not found.
function l9#moveToBufferWindowInCurrentTabpage(bufNr)

" returns 0 if the buffer is not found.
function s:moveToOtherTabpageOpeningBuffer(bufNr)

" move to a window containing specified buffer.
" returns 0 if the buffer is not found.
function l9#moveToBufferWindowInOtherTabpage(bufNr)

" echo/echomsg with highlighting.
function l9#echoHl(hl, msg, prefix, addingHistory)

" input() with highlighting.
" This function can take list as {completion} argument.
function l9#inputHl(hl, ...)

" only called by l9#inputHl() for completion.
function l9#completeForInputHl(lead, line, pos)

" returns last selected text in Visual mode.
function l9#getSelectedText()

" loads given text as Vim script with :source command
function l9#loadScript(text)

" Execute :vimgrep and opens the quickfix window if matches are found.
"
" a:pattern: search pattern. If ommitted, last search pattern (@/) is used.
" a:files: List of files
function l9#grepFiles(pattern, files)

" Execute :vimgrep for buffers using l9#grepFiles()
" See also: :L9GrepBuffer :L9GrepBufferAll
function l9#grepBuffers(pattern, bufNrs)

" Highlights lines using :sign define and :sign place.
" a:linehl, a:text, a:texthl: See |signs|. Ignored if empty string.
" a:locations: List of [{buffer number}, {line number}] for highlighting
function l9#placeSign(linehl, text, texthl, locations)

" Notify a message using an external program.
" Currently supports Balloonly, Screen, and Tmux.
function l9#notifyExternally(msg)
like image 78
Micah Elliott Avatar answered Sep 26 '22 01:09

Micah Elliott