什么是L9 vim插件?

时间:2015-08-23 09:52:55

标签: vim plugins

我最近碰到了这个奇怪的Vim插件,无法弄清楚它的用途。

几乎没有记录,nobdy真的在谈论它,但对其他一些插件来说似乎很重要。

我发现的全部都在这里:

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

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

但他们只是说"它是一个图书馆"和"查看源代码"。

任何人都知道这个lib是什么,如果我应该拥有它,出于什么目的,或者我是否可以删除它,直到某些其他插件中的某些依赖项未得到满足?

1 个答案:

答案 0 :(得分:14)

我注意到最近来自Vundle的几个地方对L9的引用。没错,一开始就没有记录。但主要的源文件autoload/l9.vim中有很好的评论。它是一组通用实用功能。以下是其大部分API,增加了Vim对列表,数字,字符串,行,路径,文件,缓冲区,窗口,搜索等的处理:

" 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)