2015-08-23 15 views
13

Son zamanlarda Vim için bu tuhaf eklentiye çarptım ve kullanımının ne olduğunu anlayamadım.L9 vim eklentisi ne için?

Neredeyse belgelenmemiştir ve nobdy gerçekten bu konuda konuşmaktadır, ancak diğer eklentiler için önemli görünmektedir.

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

ve

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

ama onlar sadece "sourcecode See" "Bu bir kütüphane" ve de ki:

buldum tüm

burada.

Bu lib'in ne için olduğunu bilen var mı, neye sahip olmalıyım, hangi amaçla mı, yoksa bazı bağımlılık bazı diğer eklentilerde karşılanana kadar onu silebilir miyim?

+5

Eh, o kadar çok ötesine bilmek gerekir ne ": Burada listeleri, sayılar, dizeleri, çizgilerden, yollardan resimler, tamponlar, pencereler, arama Vim'ın tedavisini artırmada kendi API'si toplu, ve daha pek bu bir kütüphanedir "? L9, diğer eklentiler tarafından kullanılan bir kütüphanedir, böylece başka bir bağımlılık gibi yönetilir: siz * gerektiğinde ekleyiniz * ve * bırakabilir ya da olmadığında silebilirsiniz. Bir eklenti geliştirici değilseniz, kütüphane ne yapar ya da çıkarmazsa, ancak merak ettiğinizde kaynak kodunu okumak yeterli olacaktır. – romainl

+5

@romaini "bir kütüphanedir" diyor ki: "bir kod": kesinlikle hiçbir şey. İyi bir yazılım ürünü, bunun ne anlama geldiğini ve nasıl kullanılacağını açıklamalıdır. Bu, sürüm paketinin bir parçası olabilir. Kod uzun değilse "sadece kodu okuyun" diyerek akıllı bir eşek olmak. – eddy147

cevap

14

Vundle'den yakın zamanda, birkaç yerde L9 numaralı başvuruları fark ettim. Doğru, başlangıçta belgelenmemiş. Ancak, ana kaynak dosyasında autoload/l9.vim numaralı tereddüt var. Bu bir dizi genel amaçlı yardımcı fonksiyonlardır.

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