aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/tlib_vim/doc/tlib.txt
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2016-06-30 16:03:25 +0200
committerKarel Kočí <cynerd@email.cz>2016-06-30 16:03:25 +0200
commite573b3020c032400eed60b649a2cbf55266e6bb0 (patch)
tree8f572394ac8433529c7a8e70d160a2fbe8268b4e /vim/bundle/tlib_vim/doc/tlib.txt
parentb8c667bd64b3edd38d56c63c5bd1db53a23b4499 (diff)
downloadmyconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.tar.gz
myconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.tar.bz2
myconfigs-e573b3020c032400eed60b649a2cbf55266e6bb0.zip
Add current configurations from old repository
Diffstat (limited to 'vim/bundle/tlib_vim/doc/tlib.txt')
-rwxr-xr-xvim/bundle/tlib_vim/doc/tlib.txt2559
1 files changed, 2559 insertions, 0 deletions
diff --git a/vim/bundle/tlib_vim/doc/tlib.txt b/vim/bundle/tlib_vim/doc/tlib.txt
new file mode 100755
index 0000000..9d2d1a0
--- /dev/null
+++ b/vim/bundle/tlib_vim/doc/tlib.txt
@@ -0,0 +1,2559 @@
+*tlib.txt* tlib -- A library of vim functions
+ Author: Tom Link, micathom at gmail com
+
+This library provides some utility functions. There isn't much need to
+install it unless another plugin requires you to do so.
+
+Most of the library is included in autoload files. No autocommands are
+created. With the exception of loading ../plugin/02tlib.vim at startup
+the library has no impact on startup time or anything else.
+
+The change-log is included at the bottom of ../plugin/02tlib.vim
+(move the cursor over the file name and type gfG)
+
+Demo of |tlib#input#List()|:
+http://vimsomnia.blogspot.com/2010/11/selecting-items-from-list-with-tlibs.html
+
+
+-----------------------------------------------------------------------
+Install~
+
+Edit the vba file and type: >
+
+ :so %
+
+See :help vimball for details. If you have difficulties, please make
+sure, you have the current version of vimball (vimscript #1502)
+installed.
+
+
+========================================================================
+Contents~
+
+ :TLet .................................. |:TLet|
+ :TScratch .............................. |:TScratch|
+ :TVarArg ............................... |:TVarArg|
+ :TBrowseOutput ......................... |:TBrowseOutput|
+ :TBrowseScriptnames .................... |:TBrowseScriptnames|
+ :Tlibtrace ............................. |:Tlibtrace|
+ :Tlibtraceset .......................... |:Tlibtraceset|
+ :Tlibassert ............................ |:Tlibassert|
+ :Tlibtype .............................. |:Tlibtype|
+ Add .................................... |Add()|
+ TestGetArg ............................. |TestGetArg()|
+ TestGetArg1 ............................ |TestGetArg1()|
+ TestArgs ............................... |TestArgs()|
+ TestArgs1 .............................. |TestArgs1()|
+ TestArgs2 .............................. |TestArgs2()|
+ TestArgs3 .............................. |TestArgs3()|
+ g:tlib#debug ........................... |g:tlib#debug|
+ tlib#notify#Echo ....................... |tlib#notify#Echo()|
+ tlib#notify#TrimMessage ................ |tlib#notify#TrimMessage()|
+ tlib#notify#PrintError ................. |tlib#notify#PrintError()|
+ g:tlib#trace#backtrace ................. |g:tlib#trace#backtrace|
+ g:tlib#trace#printer ................... |g:tlib#trace#printer|
+ g:tlib#trace#hl ........................ |g:tlib#trace#hl|
+ tlib#trace#Printer_echom ............... |tlib#trace#Printer_echom()|
+ tlib#trace#Printer_file ................ |tlib#trace#Printer_file()|
+ tlib#trace#Set ......................... |tlib#trace#Set()|
+ tlib#trace#Backtrace ................... |tlib#trace#Backtrace()|
+ tlib#trace#Print ....................... |tlib#trace#Print()|
+ tlib#trace#Enable ...................... |tlib#trace#Enable()|
+ tlib#trace#Disable ..................... |tlib#trace#Disable()|
+ tlib#dictionary#Rev .................... |tlib#dictionary#Rev()|
+ g:tlib_persistent ...................... |g:tlib_persistent|
+ tlib#persistent#Dir .................... |tlib#persistent#Dir()|
+ tlib#persistent#Filename ............... |tlib#persistent#Filename()|
+ tlib#persistent#Get .................... |tlib#persistent#Get()|
+ tlib#persistent#MTime .................. |tlib#persistent#MTime()|
+ tlib#persistent#Value .................. |tlib#persistent#Value()|
+ tlib#persistent#Save ................... |tlib#persistent#Save()|
+ g:tlib#vim#simalt_maximize ............. |g:tlib#vim#simalt_maximize|
+ g:tlib#vim#simalt_restore .............. |g:tlib#vim#simalt_restore|
+ g:tlib#vim#use_vimtweak ................ |g:tlib#vim#use_vimtweak|
+ tlib#vim#Maximize ...................... |tlib#vim#Maximize()|
+ tlib#vim#RestoreWindow ................. |tlib#vim#RestoreWindow()|
+ g:tlib#vim#use_wmctrl .................. |g:tlib#vim#use_wmctrl|
+ tlib#vim#CopyFunction .................. |tlib#vim#CopyFunction()|
+ tlib#progressbar#Init .................. |tlib#progressbar#Init()|
+ tlib#progressbar#Display ............... |tlib#progressbar#Display()|
+ tlib#progressbar#Restore ............... |tlib#progressbar#Restore()|
+ tlib#selection#GetSelection ............ |tlib#selection#GetSelection()|
+ tlib#eval#FormatValue .................. |tlib#eval#FormatValue()|
+ tlib#eval#Extend ....................... |tlib#eval#Extend()|
+ tlib#list#Inject ....................... |tlib#list#Inject()|
+ tlib#list#Compact ...................... |tlib#list#Compact()|
+ tlib#list#Flatten ...................... |tlib#list#Flatten()|
+ tlib#list#FindAll ...................... |tlib#list#FindAll()|
+ tlib#list#Find ......................... |tlib#list#Find()|
+ tlib#list#Any .......................... |tlib#list#Any()|
+ tlib#list#All .......................... |tlib#list#All()|
+ tlib#list#Remove ....................... |tlib#list#Remove()|
+ tlib#list#RemoveAll .................... |tlib#list#RemoveAll()|
+ tlib#list#Zip .......................... |tlib#list#Zip()|
+ tlib#list#Uniq ......................... |tlib#list#Uniq()|
+ tlib#list#ToDictionary ................. |tlib#list#ToDictionary()|
+ tlib#cmd#OutputAsList .................. |tlib#cmd#OutputAsList()|
+ tlib#cmd#BrowseOutput .................. |tlib#cmd#BrowseOutput()|
+ tlib#cmd#BrowseOutputWithCallback ...... |tlib#cmd#BrowseOutputWithCallback()|
+ tlib#cmd#DefaultBrowseOutput ........... |tlib#cmd#DefaultBrowseOutput()|
+ tlib#cmd#ParseScriptname ............... |tlib#cmd#ParseScriptname()|
+ tlib#cmd#TBrowseScriptnames ............ |tlib#cmd#TBrowseScriptnames()|
+ tlib#cmd#UseVertical ................... |tlib#cmd#UseVertical()|
+ tlib#cmd#Time .......................... |tlib#cmd#Time()|
+ tlib#cmd#Capture ....................... |tlib#cmd#Capture()|
+ tlib#syntax#Collect .................... |tlib#syntax#Collect()|
+ tlib#syntax#Names ...................... |tlib#syntax#Names()|
+ tlib#balloon#Register .................. |tlib#balloon#Register()|
+ tlib#balloon#Remove .................... |tlib#balloon#Remove()|
+ tlib#balloon#Expr ...................... |tlib#balloon#Expr()|
+ tlib#balloon#Expand .................... |tlib#balloon#Expand()|
+ g:tlib#vcs#def ......................... |g:tlib#vcs#def|
+ g:tlib#vcs#executables ................. |g:tlib#vcs#executables|
+ g:tlib#vcs#check ....................... |g:tlib#vcs#check|
+ tlib#vcs#Executable .................... |tlib#vcs#Executable()|
+ tlib#vcs#FindVCS ....................... |tlib#vcs#FindVCS()|
+ tlib#vcs#Ls ............................ |tlib#vcs#Ls()|
+ tlib#vcs#Diff .......................... |tlib#vcs#Diff()|
+ tlib#vcs#GitLsPostprocess .............. |tlib#vcs#GitLsPostprocess()|
+ tlib#char#Get .......................... |tlib#char#Get()|
+ tlib#char#IsAvailable .................. |tlib#char#IsAvailable()|
+ tlib#char#GetWithTimeout ............... |tlib#char#GetWithTimeout()|
+ g:tlib#Filter_glob#seq ................. |g:tlib#Filter_glob#seq|
+ g:tlib#Filter_glob#char ................ |g:tlib#Filter_glob#char|
+ tlib#Filter_glob#New ................... |tlib#Filter_glob#New()|
+ g:tlib_scratch_pos ..................... |g:tlib_scratch_pos|
+ g:tlib#scratch#hidden .................. |g:tlib#scratch#hidden|
+ tlib#scratch#UseScratch ................ |tlib#scratch#UseScratch()|
+ tlib#scratch#CloseScratch .............. |tlib#scratch#CloseScratch()|
+ tlib#autocmdgroup#Init ................. |tlib#autocmdgroup#Init()|
+ g:tlib_cache ........................... |g:tlib_cache|
+ g:tlib#cache#purge_days ................ |g:tlib#cache#purge_days|
+ g:tlib#cache#purge_every_days .......... |g:tlib#cache#purge_every_days|
+ g:tlib#cache#script_encoding ........... |g:tlib#cache#script_encoding|
+ g:tlib#cache#run_script ................ |g:tlib#cache#run_script|
+ g:tlib#cache#verbosity ................. |g:tlib#cache#verbosity|
+ g:tlib#cache#dont_purge ................ |g:tlib#cache#dont_purge|
+ g:tlib#cache#max_filename .............. |g:tlib#cache#max_filename|
+ tlib#cache#Dir ......................... |tlib#cache#Dir()|
+ tlib#cache#Filename .................... |tlib#cache#Filename()|
+ tlib#cache#Save ........................ |tlib#cache#Save()|
+ tlib#cache#MTime ....................... |tlib#cache#MTime()|
+ tlib#cache#Get ......................... |tlib#cache#Get()|
+ tlib#cache#Value ....................... |tlib#cache#Value()|
+ tlib#cache#MaybePurge .................. |tlib#cache#MaybePurge()|
+ tlib#cache#Purge ....................... |tlib#cache#Purge()|
+ tlib#cache#ListFilesInCache ............ |tlib#cache#ListFilesInCache()|
+ tlib#normal#WithRegister ............... |tlib#normal#WithRegister()|
+ tlib#time#MSecs ........................ |tlib#time#MSecs()|
+ tlib#time#Now .......................... |tlib#time#Now()|
+ tlib#time#FormatNow .................... |tlib#time#FormatNow()|
+ tlib#time#Diff ......................... |tlib#time#Diff()|
+ tlib#time#DiffMSecs .................... |tlib#time#DiffMSecs()|
+ tlib#var#Let ........................... |tlib#var#Let()|
+ tlib#var#EGet .......................... |tlib#var#EGet()|
+ tlib#var#Get ........................... |tlib#var#Get()|
+ tlib#var#List .......................... |tlib#var#List()|
+ g:tlib_scroll_lines .................... |g:tlib_scroll_lines|
+ tlib#agent#Exit ........................ |tlib#agent#Exit()|
+ tlib#agent#CopyItems ................... |tlib#agent#CopyItems()|
+ tlib#agent#PageUp ...................... |tlib#agent#PageUp()|
+ tlib#agent#PageDown .................... |tlib#agent#PageDown()|
+ tlib#agent#Home ........................ |tlib#agent#Home()|
+ tlib#agent#End ......................... |tlib#agent#End()|
+ tlib#agent#Up .......................... |tlib#agent#Up()|
+ tlib#agent#Down ........................ |tlib#agent#Down()|
+ tlib#agent#UpN ......................... |tlib#agent#UpN()|
+ tlib#agent#DownN ....................... |tlib#agent#DownN()|
+ tlib#agent#ShiftLeft ................... |tlib#agent#ShiftLeft()|
+ tlib#agent#ShiftRight .................. |tlib#agent#ShiftRight()|
+ tlib#agent#Reset ....................... |tlib#agent#Reset()|
+ tlib#agent#ToggleRestrictView .......... |tlib#agent#ToggleRestrictView()|
+ tlib#agent#RestrictView ................ |tlib#agent#RestrictView()|
+ tlib#agent#UnrestrictView .............. |tlib#agent#UnrestrictView()|
+ tlib#agent#Input ....................... |tlib#agent#Input()|
+ tlib#agent#SuspendToParentWindow ....... |tlib#agent#SuspendToParentWindow()|
+ tlib#agent#Suspend ..................... |tlib#agent#Suspend()|
+ tlib#agent#Help ........................ |tlib#agent#Help()|
+ tlib#agent#OR .......................... |tlib#agent#OR()|
+ tlib#agent#AND ......................... |tlib#agent#AND()|
+ tlib#agent#ReduceFilter ................ |tlib#agent#ReduceFilter()|
+ tlib#agent#PopFilter ................... |tlib#agent#PopFilter()|
+ tlib#agent#Debug ....................... |tlib#agent#Debug()|
+ tlib#agent#Select ...................... |tlib#agent#Select()|
+ tlib#agent#SelectUp .................... |tlib#agent#SelectUp()|
+ tlib#agent#SelectDown .................. |tlib#agent#SelectDown()|
+ tlib#agent#SelectAll ................... |tlib#agent#SelectAll()|
+ tlib#agent#ToggleStickyList ............ |tlib#agent#ToggleStickyList()|
+ tlib#agent#EditItem .................... |tlib#agent#EditItem()|
+ tlib#agent#NewItem ..................... |tlib#agent#NewItem()|
+ tlib#agent#DeleteItems ................. |tlib#agent#DeleteItems()|
+ tlib#agent#Cut ......................... |tlib#agent#Cut()|
+ tlib#agent#Copy ........................ |tlib#agent#Copy()|
+ tlib#agent#Paste ....................... |tlib#agent#Paste()|
+ tlib#agent#EditReturnValue ............. |tlib#agent#EditReturnValue()|
+ tlib#agent#ViewFile .................... |tlib#agent#ViewFile()|
+ tlib#agent#EditFile .................... |tlib#agent#EditFile()|
+ tlib#agent#EditFileInSplit ............. |tlib#agent#EditFileInSplit()|
+ tlib#agent#EditFileInVSplit ............ |tlib#agent#EditFileInVSplit()|
+ tlib#agent#EditFileInTab ............... |tlib#agent#EditFileInTab()|
+ tlib#agent#ToggleScrollbind ............ |tlib#agent#ToggleScrollbind()|
+ tlib#agent#ShowInfo .................... |tlib#agent#ShowInfo()|
+ tlib#agent#PreviewLine ................. |tlib#agent#PreviewLine()|
+ tlib#agent#GotoLine .................... |tlib#agent#GotoLine()|
+ tlib#agent#DoAtLine .................... |tlib#agent#DoAtLine()|
+ tlib#agent#Wildcard .................... |tlib#agent#Wildcard()|
+ tlib#agent#Null ........................ |tlib#agent#Null()|
+ tlib#agent#ExecAgentByName ............. |tlib#agent#ExecAgentByName()|
+ tlib#agent#CompleteAgentNames .......... |tlib#agent#CompleteAgentNames()|
+ tlib#agent#Complete .................... |tlib#agent#Complete()|
+ tlib#bitwise#Num2Bits .................. |tlib#bitwise#Num2Bits()|
+ tlib#bitwise#Bits2Num .................. |tlib#bitwise#Bits2Num()|
+ tlib#bitwise#AND ....................... |tlib#bitwise#AND()|
+ tlib#bitwise#OR ........................ |tlib#bitwise#OR()|
+ tlib#bitwise#XOR ....................... |tlib#bitwise#XOR()|
+ tlib#bitwise#ShiftRight ................ |tlib#bitwise#ShiftRight()|
+ tlib#bitwise#ShiftLeft ................. |tlib#bitwise#ShiftLeft()|
+ tlib#bitwise#Add ....................... |tlib#bitwise#Add()|
+ tlib#bitwise#Sub ....................... |tlib#bitwise#Sub()|
+ tlib#url#Decode ........................ |tlib#url#Decode()|
+ tlib#url#DecodeChar .................... |tlib#url#DecodeChar()|
+ tlib#url#EncodeChar .................... |tlib#url#EncodeChar()|
+ tlib#url#Encode ........................ |tlib#url#Encode()|
+ tlib#signs#ClearAll .................... |tlib#signs#ClearAll()|
+ tlib#signs#ClearBuffer ................. |tlib#signs#ClearBuffer()|
+ tlib#signs#Mark ........................ |tlib#signs#Mark()|
+ tlib#rx#Escape ......................... |tlib#rx#Escape()|
+ tlib#rx#EscapeReplace .................. |tlib#rx#EscapeReplace()|
+ tlib#rx#Suffixes ....................... |tlib#rx#Suffixes()|
+ tlib#rx#LooksLikeRegexp ................ |tlib#rx#LooksLikeRegexp()|
+ g:tlib_tags_extra ...................... |g:tlib_tags_extra|
+ g:tlib_tag_substitute .................. |g:tlib_tag_substitute|
+ tlib#tag#Retrieve ...................... |tlib#tag#Retrieve()|
+ tlib#tag#Collect ....................... |tlib#tag#Collect()|
+ tlib#tag#Format ........................ |tlib#tag#Format()|
+ tlib#map#PumAccept ..................... |tlib#map#PumAccept()|
+ tlib#Filter_cnfd#New ................... |tlib#Filter_cnfd#New()|
+ g:tlib#input#sortprefs_threshold ....... |g:tlib#input#sortprefs_threshold|
+ g:tlib#input#livesearch_threshold ...... |g:tlib#input#livesearch_threshold|
+ g:tlib#input#filter_mode ............... |g:tlib#input#filter_mode|
+ g:tlib#input#higroup ................... |g:tlib#input#higroup|
+ g:tlib_pick_last_item .................. |g:tlib_pick_last_item|
+ g:tlib#input#and ....................... |g:tlib#input#and|
+ g:tlib#input#or ........................ |g:tlib#input#or|
+ g:tlib#input#not ....................... |g:tlib#input#not|
+ g:tlib#input#numeric_chars ............. |g:tlib#input#numeric_chars|
+ g:tlib#input#keyagents_InputList_s ..... |g:tlib#input#keyagents_InputList_s|
+ g:tlib#input#keyagents_InputList_m ..... |g:tlib#input#keyagents_InputList_m|
+ g:tlib#input#handlers_EditList ......... |g:tlib#input#handlers_EditList|
+ g:tlib#input#user_shortcuts ............ |g:tlib#input#user_shortcuts|
+ g:tlib#input#use_popup ................. |g:tlib#input#use_popup|
+ g:tlib#input#format_filename ........... |g:tlib#input#format_filename|
+ g:tlib#input#filename_padding_r ........ |g:tlib#input#filename_padding_r|
+ g:tlib#input#filename_max_width ........ |g:tlib#input#filename_max_width|
+ tlib#input#List ........................ |tlib#input#List()|
+ tlib#input#ListD ....................... |tlib#input#ListD()|
+ tlib#input#ListW ....................... |tlib#input#ListW()|
+ tlib#input#EditList .................... |tlib#input#EditList()|
+ tlib#input#Resume ...................... |tlib#input#Resume()|
+ tlib#input#CommandSelect ............... |tlib#input#CommandSelect()|
+ tlib#input#Edit ........................ |tlib#input#Edit()|
+ tlib#input#Dialog ...................... |tlib#input#Dialog()|
+ tlib#number#ConvertBase ................ |tlib#number#ConvertBase()|
+ g:tlib#file#drop ....................... |g:tlib#file#drop|
+ g:tlib#file#use_tabs ................... |g:tlib#file#use_tabs|
+ g:tlib#file#edit_cmds .................. |g:tlib#file#edit_cmds|
+ g:tlib#file#absolute_filename_rx ....... |g:tlib#file#absolute_filename_rx|
+ tlib#file#Split ........................ |tlib#file#Split()|
+ tlib#file#Join ......................... |tlib#file#Join()|
+ tlib#file#Relative ..................... |tlib#file#Relative()|
+ tlib#file#IsAbsolute ................... |tlib#file#IsAbsolute()|
+ tlib#file#Absolute ..................... |tlib#file#Absolute()|
+ tlib#file#Canonic ...................... |tlib#file#Canonic()|
+ tlib#file#With ......................... |tlib#file#With()|
+ tlib#file#Edit ......................... |tlib#file#Edit()|
+ tlib#file#Glob ......................... |tlib#file#Glob()|
+ tlib#file#Globpath ..................... |tlib#file#Globpath()|
+ g:tlib#sys#special_protocols ........... |g:tlib#sys#special_protocols|
+ g:tlib#sys#special_suffixes ............ |g:tlib#sys#special_suffixes|
+ g:tlib#sys#system_rx ................... |g:tlib#sys#system_rx|
+ g:tlib#sys#system_browser .............. |g:tlib#sys#system_browser|
+ g:tlib#sys#windows ..................... |g:tlib#sys#windows|
+ g:tlib#sys#null ........................ |g:tlib#sys#null|
+ tlib#sys#IsCygwinBin ................... |tlib#sys#IsCygwinBin()|
+ tlib#sys#IsExecutable .................. |tlib#sys#IsExecutable()|
+ g:tlib#sys#check_cygpath ............... |g:tlib#sys#check_cygpath|
+ g:tlib#sys#cygwin_path_rx .............. |g:tlib#sys#cygwin_path_rx|
+ g:tlib#sys#cygwin_expr ................. |g:tlib#sys#cygwin_expr|
+ tlib#sys#GetCmd ........................ |tlib#sys#GetCmd()|
+ tlib#sys#MaybeUseCygpath ............... |tlib#sys#MaybeUseCygpath()|
+ tlib#sys#ConvertPath ................... |tlib#sys#ConvertPath()|
+ tlib#sys#FileArgs ...................... |tlib#sys#FileArgs()|
+ tlib#sys#IsSpecial ..................... |tlib#sys#IsSpecial()|
+ tlib#sys#Open .......................... |tlib#sys#Open()|
+ tlib#sys#SystemInDir ................... |tlib#sys#SystemInDir()|
+ tlib#paragraph#GetMetric ............... |tlib#paragraph#GetMetric()|
+ tlib#paragraph#Move .................... |tlib#paragraph#Move()|
+ g:tlib_inputlist_pct ................... |g:tlib_inputlist_pct|
+ g:tlib_inputlist_width_filename ........ |g:tlib_inputlist_width_filename|
+ g:tlib_inputlist_filename_indicators ... |g:tlib_inputlist_filename_indicators|
+ g:tlib_inputlist_shortmessage .......... |g:tlib_inputlist_shortmessage|
+ tlib#World#New ......................... |tlib#World#New()|
+ prototype.PrintLines
+ prototype.Suspend
+ tlib#loclist#Browse .................... |tlib#loclist#Browse()|
+ tlib#tab#BufMap ........................ |tlib#tab#BufMap()|
+ tlib#tab#TabWinNr ...................... |tlib#tab#TabWinNr()|
+ tlib#tab#Set ........................... |tlib#tab#Set()|
+ tlib#date#IsDate ....................... |tlib#date#IsDate()|
+ tlib#date#Format ....................... |tlib#date#Format()|
+ tlib#date#DiffInDays ................... |tlib#date#DiffInDays()|
+ tlib#date#Parse ........................ |tlib#date#Parse()|
+ tlib#date#SecondsSince1970 ............. |tlib#date#SecondsSince1970()|
+ tlib#date#Shift ........................ |tlib#date#Shift()|
+ tlib#date#AddDays ...................... |tlib#date#AddDays()|
+ tlib#type#Enable ....................... |tlib#type#Enable()|
+ tlib#type#Disable ...................... |tlib#type#Disable()|
+ tlib#type#IsNumber ..................... |tlib#type#IsNumber()|
+ tlib#type#IsString ..................... |tlib#type#IsString()|
+ tlib#type#IsFuncref .................... |tlib#type#IsFuncref()|
+ tlib#type#IsList ....................... |tlib#type#IsList()|
+ tlib#type#IsDictionary ................. |tlib#type#IsDictionary()|
+ tlib#type#Is ........................... |tlib#type#Is()|
+ tlib#type#Are .......................... |tlib#type#Are()|
+ tlib#type#Define ....................... |tlib#type#Define()|
+ tlib#type#Has .......................... |tlib#type#Has()|
+ tlib#type#Have ......................... |tlib#type#Have()|
+ tlib#type#Check ........................ |tlib#type#Check()|
+ tlib#Filter_fuzzy#New .................. |tlib#Filter_fuzzy#New()|
+ tlib#assert#Enable ..................... |tlib#assert#Enable()|
+ tlib#assert#Disable .................... |tlib#assert#Disable()|
+ tlib#assert#Assert ..................... |tlib#assert#Assert()|
+ tlib#assert#Map ........................ |tlib#assert#Map()|
+ tlib#assert#All ........................ |tlib#assert#All()|
+ tlib#textobjects#StandardParagraph ..... |standard-paragraph|
+ tlib#textobjects#Init .................. |tlib#textobjects#Init()|
+ v_sp ................................... |v_sp|
+ o_sp ................................... |o_sp|
+ tlib#arg#Get ........................... |tlib#arg#Get()|
+ tlib#arg#Let ........................... |tlib#arg#Let()|
+ tlib#arg#StringAsKeyArgs ............... |tlib#arg#StringAsKeyArgs()|
+ tlib#arg#StringAsKeyArgsEqual .......... |tlib#arg#StringAsKeyArgsEqual()|
+ tlib#arg#GetOpts ....................... |tlib#arg#GetOpts()|
+ tlib#arg#Ex ............................ |tlib#arg#Ex()|
+ tlib#fixes#Winpos ...................... |tlib#fixes#Winpos()|
+ g:tlib#dir#sep ......................... |g:tlib#dir#sep|
+ tlib#dir#CanonicName ................... |tlib#dir#CanonicName()|
+ tlib#dir#NativeName .................... |tlib#dir#NativeName()|
+ tlib#dir#PlainName ..................... |tlib#dir#PlainName()|
+ tlib#dir#Ensure ........................ |tlib#dir#Ensure()|
+ tlib#dir#MyRuntime ..................... |tlib#dir#MyRuntime()|
+ tlib#dir#CD ............................ |tlib#dir#CD()|
+ tlib#dir#Push .......................... |tlib#dir#Push()|
+ tlib#dir#Pop ........................... |tlib#dir#Pop()|
+ g:tlib#hash#use_crc32 .................. |g:tlib#hash#use_crc32|
+ g:tlib#hash#use_adler32 ................ |g:tlib#hash#use_adler32|
+ tlib#hash#CRC32B ....................... |tlib#hash#CRC32B()|
+ tlib#hash#CRC32B_ruby .................. |tlib#hash#CRC32B_ruby()|
+ tlib#hash#CRC32B_vim ................... |tlib#hash#CRC32B_vim()|
+ tlib#hash#Adler32 ...................... |tlib#hash#Adler32()|
+ tlib#hash#Adler32_vim .................. |tlib#hash#Adler32_vim()|
+ tlib#hash#Adler32_tlib ................. |tlib#hash#Adler32_tlib()|
+ tlib#win#Set ........................... |tlib#win#Set()|
+ tlib#win#GetLayout ..................... |tlib#win#GetLayout()|
+ tlib#win#SetLayout ..................... |tlib#win#SetLayout()|
+ tlib#win#List .......................... |tlib#win#List()|
+ tlib#win#Width ......................... |tlib#win#Width()|
+ tlib#win#WinDo ......................... |tlib#win#WinDo()|
+ tlib#comments#Comments ................. |tlib#comments#Comments()|
+ tlib#grep#Do ........................... |tlib#grep#Do()|
+ tlib#grep#LocList ...................... |tlib#grep#LocList()|
+ tlib#grep#QuickFixList ................. |tlib#grep#QuickFixList()|
+ tlib#grep#List ......................... |tlib#grep#List()|
+ tlib#qfl#FormatQFLE .................... |tlib#qfl#FormatQFLE()|
+ tlib#qfl#QfeFilename ................... |tlib#qfl#QfeFilename()|
+ tlib#qfl#InitListBuffer ................ |tlib#qfl#InitListBuffer()|
+ tlib#qfl#SetSyntax ..................... |tlib#qfl#SetSyntax()|
+ tlib#qfl#Balloon ....................... |tlib#qfl#Balloon()|
+ tlib#qfl#AgentEditQFE .................. |tlib#qfl#AgentEditQFE()|
+ tlib#qfl#AgentPreviewQFE ............... |tlib#qfl#AgentPreviewQFE()|
+ tlib#qfl#AgentGotoQFE .................. |tlib#qfl#AgentGotoQFE()|
+ tlib#qfl#AgentWithSelected ............. |tlib#qfl#AgentWithSelected()|
+ tlib#qfl#RunCmdOnSelected .............. |tlib#qfl#RunCmdOnSelected()|
+ tlib#qfl#AgentSplitBuffer .............. |tlib#qfl#AgentSplitBuffer()|
+ tlib#qfl#AgentTabBuffer ................ |tlib#qfl#AgentTabBuffer()|
+ tlib#qfl#AgentVSplitBuffer ............. |tlib#qfl#AgentVSplitBuffer()|
+ tlib#qfl#AgentEditLine ................. |tlib#qfl#AgentEditLine()|
+ tlib#qfl#EditLine ...................... |tlib#qfl#EditLine()|
+ tlib#qfl#SetFollowCursor ............... |tlib#qfl#SetFollowCursor()|
+ tlib#qfl#QflList ....................... |tlib#qfl#QflList()|
+ tlib#qfl#Browse ........................ |tlib#qfl#Browse()|
+ tlib#Filter_cnf#New .................... |tlib#Filter_cnf#New()|
+ prototype.Pretty
+ tlib#Object#New ........................ |tlib#Object#New()|
+ prototype.New
+ prototype.Inherit
+ prototype.Extend
+ prototype.IsA
+ prototype.IsRelated
+ prototype.RespondTo
+ prototype.Super
+ tlib#Object#Methods .................... |tlib#Object#Methods()|
+ g:tlib_viewline_position ............... |g:tlib_viewline_position|
+ tlib#buffer#EnableMRU .................. |tlib#buffer#EnableMRU()|
+ tlib#buffer#DisableMRU ................. |tlib#buffer#DisableMRU()|
+ tlib#buffer#Set ........................ |tlib#buffer#Set()|
+ tlib#buffer#Eval ....................... |tlib#buffer#Eval()|
+ tlib#buffer#GetList .................... |tlib#buffer#GetList()|
+ tlib#buffer#ViewLine ................... |tlib#buffer#ViewLine()|
+ tlib#buffer#HighlightLine .............. |tlib#buffer#HighlightLine()|
+ tlib#buffer#DeleteRange ................ |tlib#buffer#DeleteRange()|
+ tlib#buffer#ReplaceRange ............... |tlib#buffer#ReplaceRange()|
+ tlib#buffer#ScratchStart ............... |tlib#buffer#ScratchStart()|
+ tlib#buffer#ScratchEnd ................. |tlib#buffer#ScratchEnd()|
+ tlib#buffer#BufDo ...................... |tlib#buffer#BufDo()|
+ tlib#buffer#InsertText ................. |tlib#buffer#InsertText()|
+ tlib#buffer#InsertText0 ................ |tlib#buffer#InsertText0()|
+ tlib#buffer#CurrentByte ................ |tlib#buffer#CurrentByte()|
+ tlib#buffer#KeepCursorPosition ......... |tlib#buffer#KeepCursorPosition()|
+ tlib#hook#Run .......................... |tlib#hook#Run()|
+ tlib#string#RemoveBackslashes .......... |tlib#string#RemoveBackslashes()|
+ tlib#string#Chomp ...................... |tlib#string#Chomp()|
+ tlib#string#Format ..................... |tlib#string#Format()|
+ tlib#string#Printf1 .................... |tlib#string#Printf1()|
+ tlib#string#TrimLeft ................... |tlib#string#TrimLeft()|
+ tlib#string#TrimRight .................. |tlib#string#TrimRight()|
+ tlib#string#Strip ...................... |tlib#string#Strip()|
+ tlib#string#Count ...................... |tlib#string#Count()|
+ tlib#string#SplitCommaList ............. |tlib#string#SplitCommaList()|
+ tlib#string#Input ...................... |tlib#string#Input()|
+
+
+========================================================================
+plugin/02tlib.vim~
+
+ *:TLet*
+:TLet VAR = VALUE
+ Set a variable only if it doesn't already exist.
+ EXAMPLES: >
+ TLet foo = 1
+ TLet foo = 2
+ echo foo
+ => 1
+<
+
+ *:TScratch*
+:TScratch
+ Open a scratch buffer (a buffer without a file).
+ TScratch ... use split window
+ TScratch! ... use the whole frame
+ This command takes an (inner) dictionary as optional argument.
+ EXAMPLES: >
+ TScratch 'scratch': '__FOO__'
+ => Open a scratch buffer named __FOO__
+<
+
+ *:TVarArg*
+:TVarArg VAR1, [VAR2, DEFAULT2] ...
+ A convenience wrapper for |tlib#arg#Let|.
+ EXAMPLES: >
+ function! Foo(...)
+ TVarArg ['a', 1], 'b'
+ echo 'a='. a
+ echo 'b='. b
+ endf
+<
+
+ *:TBrowseOutput*
+:TBrowseOutput COMMAND
+ Ever wondered how to efficiently browse the output of a command
+ without redirecting it to a file? This command takes a command as
+ argument and presents the output via |tlib#input#List()| so that you
+ can easily search for a keyword (e.g. the name of a variable or
+ function) and the like.
+
+ If you press enter, the selected line will be copied to the command
+ line. Press ESC to cancel browsing.
+
+ EXAMPLES: >
+ TBrowseOutput 20verb TeaseTheCulprit
+<
+
+ *:TBrowseScriptnames*
+:TBrowseScriptnames
+ List all sourced script names (the output of ':scriptnames').
+
+ When you press enter, the selected script will be opened in the current
+ window. Press ESC to cancel.
+
+ EXAMPLES: >
+ TBrowseScriptnames
+<
+
+ *:Tlibtrace*
+:Tlibtrace GUARD, VAR1, VAR2...
+ Do nothing unless |tlib#trace#Enable()| was called.
+
+ When |:Tlibtraceset| or |tlib#trace#Enable()| were called:
+
+ If GUARD is a number that evaluates to true or if it is a string that
+ matches a |regexp|, which was added using Tlibtrace! (with '!'),
+ display the values of VAR1, VAR2 ...
+
+ *:Tlibtraceset*
+:Tlibtraceset
+ :Tlibtraceset +RX1, -RX2...
+ If |tlib#trace#Enable()| was called: With the optional <bang>, users
+ can add and remove GUARDs (actually a |regexp|) that should be traced.
+
+ *:Tlibassert*
+:Tlibtrace ASSERTION
+
+ *:Tlibtype*
+:Tlibtype val, 'type', ...
+
+
+========================================================================
+test/tlib.vim~
+
+ *Add()*
+Add(a,b)
+ List
+
+ *TestGetArg()*
+TestGetArg(...)
+ Optional arguments
+
+ *TestGetArg1()*
+TestGetArg1(...)
+
+ *TestArgs()*
+TestArgs(...)
+
+ *TestArgs1()*
+TestArgs1(...)
+
+ *TestArgs2()*
+TestArgs2(...)
+
+ *TestArgs3()*
+TestArgs3(...)
+
+
+========================================================================
+autoload/tlib.vim~
+
+ *g:tlib#debug*
+g:tlib#debug
+
+
+========================================================================
+autoload/tlib/notify.vim~
+
+ *tlib#notify#Echo()*
+tlib#notify#Echo(text, ?style='')
+ Print text in the echo area. Temporarily disable 'ruler' and 'showcmd'
+ in order to prevent |press-enter| messages.
+
+ *tlib#notify#TrimMessage()*
+tlib#notify#TrimMessage(message)
+ Contributed by Erik Falor:
+ If the line containing the message is too long, echoing it will cause
+ a 'Hit ENTER' prompt to appear. This function cleans up the line so
+ that does not happen.
+ The echoed line is too long if it is wider than the width of the
+ window, minus cmdline space taken up by the ruler and showcmd
+ features.
+
+ *tlib#notify#PrintError()*
+tlib#notify#PrintError()
+
+
+========================================================================
+autoload/tlib/trace.vim~
+
+ *g:tlib#trace#backtrace*
+g:tlib#trace#backtrace (default: 2)
+ The length of the backtrace that should be included in
+ |tlib#trace#Print()|.
+
+ *g:tlib#trace#printer*
+g:tlib#trace#printer (default: 'echom')
+ Possible values:
+ - 'echom'
+ - ['file', FILENAME]
+
+ *g:tlib#trace#hl*
+g:tlib#trace#hl (default: {'error': 'ErrorMsg', 'fatal': 'ErrorMsg', 'warn': 'WarningMsg'})
+
+ *tlib#trace#Printer_echom()*
+tlib#trace#Printer_echom(type, text, args)
+ Print traces from |tlib#trace#Print()|.
+
+ *tlib#trace#Printer_file()*
+tlib#trace#Printer_file(type, text, args)
+
+ *tlib#trace#Set()*
+tlib#trace#Set(vars)
+ Set the tracing |regexp|. See |:Tlibtrace|.
+ This will also call |tlib#trace#Enable()|.
+
+ Examples:
+ call tlib#trace#Set(["+foo", "-bar"])
+ call tlib#trace#Set("+foo,-bar")
+
+ *tlib#trace#Backtrace()*
+tlib#trace#Backtrace(caller)
+
+ *tlib#trace#Print()*
+tlib#trace#Print(caller, vars, values)
+ Print the values of vars. The first value is a "guard" (see
+ |:Tlibtrace|).
+
+ *tlib#trace#Enable()*
+tlib#trace#Enable()
+ Enable tracing via |:Tlibtrace|.
+
+ *tlib#trace#Disable()*
+tlib#trace#Disable()
+ Disable tracing via |:Tlibtrace|.
+
+
+========================================================================
+autoload/tlib/dictionary.vim~
+
+ *tlib#dictionary#Rev()*
+tlib#dictionary#Rev(dict, ?opts = {}) abort "{{{3
+
+
+========================================================================
+autoload/tlib/persistent.vim~
+
+ *g:tlib_persistent*
+g:tlib_persistent (default: '')
+ The directory for persistent data files. If empty, use
+ |tlib#dir#MyRuntime|.'/share'.
+
+ *tlib#persistent#Dir()*
+tlib#persistent#Dir(?mode = 'bg')
+ Return the full directory name for persistent data files.
+
+ *tlib#persistent#Filename()*
+tlib#persistent#Filename(type, ?file=%, ?mkdir=0)
+
+ *tlib#persistent#Get()*
+tlib#persistent#Get(...)
+
+ *tlib#persistent#MTime()*
+tlib#persistent#MTime(cfile)
+
+ *tlib#persistent#Value()*
+tlib#persistent#Value(...)
+
+ *tlib#persistent#Save()*
+tlib#persistent#Save(cfile, dictionary)
+
+
+========================================================================
+autoload/tlib/vim.vim~
+
+ *g:tlib#vim#simalt_maximize*
+g:tlib#vim#simalt_maximize (default: 'x')
+ The alt-key for maximizing the window.
+ CAUTION: The value of this paramter depends on your locale and
+ maybe the windows version you are running.
+
+ *g:tlib#vim#simalt_restore*
+g:tlib#vim#simalt_restore (default: 'r')
+ The alt-key for restoring the window.
+ CAUTION: The value of this paramter depends on your locale and
+ maybe the windows version you are running.
+
+ *g:tlib#vim#use_vimtweak*
+g:tlib#vim#use_vimtweak (default: 0)
+ If true, use the vimtweak.dll for windows. This will enable
+ tlib to remove the caption for fullscreen windows.
+
+ *tlib#vim#Maximize()*
+tlib#vim#Maximize(fullscreen)
+ Maximize the window.
+ You might need to redefine |g:tlib#vim#simalt_maximize| if it doesn't
+ work for you.
+
+ *tlib#vim#RestoreWindow()*
+tlib#vim#RestoreWindow()
+ Restore the original vimsize after having called |tlib#vim#Maximize()|.
+
+ *g:tlib#vim#use_wmctrl*
+g:tlib#vim#use_wmctrl (default: executable('wmctrl'))
+ If true, use wmctrl for X windows to make a window
+ maximized/fullscreen.
+
+ This is the preferred method for maximizing windows under X
+ windows. Some window managers have problem coping with the
+ default method of setting 'lines' and 'columns' to a large
+ value.
+
+ *tlib#vim#CopyFunction()*
+tlib#vim##CopyFunction(old, new, overwrite=0)
+
+
+========================================================================
+autoload/tlib/progressbar.vim~
+
+ *tlib#progressbar#Init()*
+tlib#progressbar#Init(max, ...)
+ EXAMPLE: >
+ call tlib#progressbar#Init(20)
+ try
+ for i in range(20)
+ call tlib#progressbar#Display(i)
+ call DoSomethingThatTakesSomeTime(i)
+ endfor
+ finally
+ call tlib#progressbar#Restore()
+ endtry
+<
+
+ *tlib#progressbar#Display()*
+tlib#progressbar#Display(value, ...)
+
+ *tlib#progressbar#Restore()*
+tlib#progressbar#Restore()
+
+
+========================================================================
+autoload/tlib/selection.vim~
+
+ *tlib#selection#GetSelection()*
+tlib#selection#GetSelection(mode, ?mbeg="'<", ?mend="'>", ?opmode='selection')
+ mode can be one of: selection, lines, block
+
+
+========================================================================
+autoload/tlib/eval.vim~
+
+ *tlib#eval#FormatValue()*
+tlib#eval#FormatValue(value, ...)
+
+ *tlib#eval#Extend()*
+tlib#eval#Extend(a, b, ...)
+
+
+========================================================================
+autoload/tlib/list.vim~
+
+ *tlib#list#Inject()*
+tlib#list#Inject(list, initial_value, funcref)
+ EXAMPLES: >
+ echo tlib#list#Inject([1,2,3], 0, function('Add')
+ => 6
+<
+
+ *tlib#list#Compact()*
+tlib#list#Compact(list)
+ EXAMPLES: >
+ tlib#list#Compact([0,1,2,3,[], {}, ""])
+ => [1,2,3]
+<
+
+ *tlib#list#Flatten()*
+tlib#list#Flatten(list)
+ EXAMPLES: >
+ tlib#list#Flatten([0,[1,2,[3,""]]])
+ => [0,1,2,3,""]
+<
+
+ *tlib#list#FindAll()*
+tlib#list#FindAll(list, filter, ?process_expr="")
+ Basically the same as filter()
+
+ EXAMPLES: >
+ tlib#list#FindAll([1,2,3], 'v:val >= 2')
+ => [2, 3]
+<
+
+ *tlib#list#Find()*
+tlib#list#Find(list, filter, ?default="", ?process_expr="")
+
+ EXAMPLES: >
+ tlib#list#Find([1,2,3], 'v:val >= 2')
+ => 2
+<
+
+ *tlib#list#Any()*
+tlib#list#Any(list, expr)
+ EXAMPLES: >
+ tlib#list#Any([1,2,3], 'v:val >= 2')
+ => 1
+<
+
+ *tlib#list#All()*
+tlib#list#All(list, expr)
+ EXAMPLES: >
+ tlib#list#All([1,2,3], 'v:val >= 2')
+ => 0
+<
+
+ *tlib#list#Remove()*
+tlib#list#Remove(list, element)
+ EXAMPLES: >
+ tlib#list#Remove([1,2,1,2], 2)
+ => [1,1,2]
+<
+
+ *tlib#list#RemoveAll()*
+tlib#list#RemoveAll(list, element)
+ EXAMPLES: >
+ tlib#list#RemoveAll([1,2,1,2], 2)
+ => [1,1]
+<
+
+ *tlib#list#Zip()*
+tlib#list#Zip(lists, ?default='')
+ EXAMPLES: >
+ tlib#list#Zip([[1,2,3], [4,5,6]])
+ => [[1,4], [2,5], [3,6]]
+<
+
+ *tlib#list#Uniq()*
+tlib#list#Uniq(list, ...)
+
+ *tlib#list#ToDictionary()*
+tlib#list#ToDictionary(list, default, ...)
+
+
+========================================================================
+autoload/tlib/cmd.vim~
+
+ *tlib#cmd#OutputAsList()*
+tlib#cmd#OutputAsList(command)
+
+ *tlib#cmd#BrowseOutput()*
+tlib#cmd#BrowseOutput(command)
+ See |:TBrowseOutput|.
+
+ *tlib#cmd#BrowseOutputWithCallback()*
+tlib#cmd#BrowseOutputWithCallback(callback, command)
+ Execute COMMAND and present its output in a |tlib#input#List()|;
+ when a line is selected, execute the function named as the CALLBACK
+ and pass in that line as an argument.
+
+ The CALLBACK function gives you an opportunity to massage the COMMAND output
+ and possibly act on it in a meaningful way. For example, if COMMAND listed
+ all URIs found in the current buffer, CALLBACK could validate and then open
+ the selected URI in the system's default browser.
+
+ This function is meant to be a tool to help compose the implementations of
+ powerful commands that use |tlib#input#List()| as a common interface. See
+ |TBrowseScriptnames| as an example.
+
+ EXAMPLES: >
+ call tlib#cmd#BrowseOutputWithCallback('tlib#cmd#ParseScriptname', 'scriptnames')
+<
+
+ *tlib#cmd#DefaultBrowseOutput()*
+tlib#cmd#DefaultBrowseOutput(cmd)
+
+ *tlib#cmd#ParseScriptname()*
+tlib#cmd#ParseScriptname(line)
+
+ *tlib#cmd#TBrowseScriptnames()*
+tlib#cmd#TBrowseScriptnames()
+
+ *tlib#cmd#UseVertical()*
+tlib#cmd#UseVertical(?rx='')
+ Look at the history whether the command was called with vertical. If
+ an rx is provided check first if the last entry in the history matches
+ this rx.
+
+ *tlib#cmd#Time()*
+tlib#cmd#Time(cmd)
+ Print the time in seconds or milliseconds (if your version of VIM
+ has |+reltime|) a command takes.
+
+ *tlib#cmd#Capture()*
+tlib#cmd#Capture(cmd)
+
+
+========================================================================
+autoload/tlib/syntax.vim~
+
+ *tlib#syntax#Collect()*
+tlib#syntax#Collect()
+
+ *tlib#syntax#Names()*
+tlib#syntax#Names(?rx='')
+
+
+========================================================================
+autoload/tlib/balloon.vim~
+
+ *tlib#balloon#Register()*
+tlib#balloon#Register(expr)
+
+ *tlib#balloon#Remove()*
+tlib#balloon#Remove(expr)
+
+ *tlib#balloon#Expr()*
+tlib#balloon#Expr()
+
+ *tlib#balloon#Expand()*
+tlib#balloon#Expand(expr)
+
+
+========================================================================
+autoload/tlib/vcs.vim~
+
+ *g:tlib#vcs#def*
+g:tlib#vcs#def {...}
+ A dictionarie of supported VCS (currently: git, hg, svn, bzr).
+
+ *g:tlib#vcs#executables*
+g:tlib#vcs#executables {...}
+ A dictionary of custom executables for VCS commands. If the value is
+ empty, support for that VCS will be removed. If no key is present, it
+ is assumed that the VCS "type" is the name of the executable.
+
+ *g:tlib#vcs#check*
+g:tlib#vcs#check (default: has('win16') || has('win32') || has('win64') ? '%s.exe' : '%s')
+ If non-empty, use it as a format string to check whether a VCS is
+ installed on your computer.
+
+ *tlib#vcs#Executable()*
+tlib#vcs#Executable(type)
+
+ *tlib#vcs#FindVCS()*
+tlib#vcs#FindVCS(filename)
+
+ *tlib#vcs#Ls()*
+tlib#vcs#Ls(?filename=bufname('%'), ?vcs=[type, dir])
+ Return the files under VCS.
+
+ *tlib#vcs#Diff()*
+tlib#vcs#Diff(filename, ?vcs=[type, dir])
+ Return the diff for "filename"
+
+ *tlib#vcs#GitLsPostprocess()*
+tlib#vcs#GitLsPostprocess(filename)
+
+
+========================================================================
+autoload/tlib/char.vim~
+
+ *tlib#char#Get()*
+tlib#char#Get(?timeout=0)
+ Get a character.
+
+ EXAMPLES: >
+ echo tlib#char#Get()
+ echo tlib#char#Get(5)
+<
+
+ *tlib#char#IsAvailable()*
+tlib#char#IsAvailable()
+
+ *tlib#char#GetWithTimeout()*
+tlib#char#GetWithTimeout(timeout, ...)
+
+
+========================================================================
+autoload/tlib/Filter_glob.vim~
+
+ *g:tlib#Filter_glob#seq*
+g:tlib#Filter_glob#seq (default: '*')
+ A character that should be expanded to '\.\{-}'.
+
+ *g:tlib#Filter_glob#char*
+g:tlib#Filter_glob#char (default: '?')
+ A character that should be expanded to '\.\?'.
+
+ *tlib#Filter_glob#New()*
+tlib#Filter_glob#New(...)
+ The same as |tlib#Filter_cnf#New()| but a a customizable character
+ |see tlib#Filter_glob#seq| is expanded to '\.\{-}' and
+ |g:tlib#Filter_glob#char| is expanded to '\.'.
+ The pattern is a '/\V' very no-'/magic' regexp pattern.
+
+
+========================================================================
+autoload/tlib/scratch.vim~
+
+ *g:tlib_scratch_pos*
+g:tlib_scratch_pos (default: 'botright')
+ Scratch window position. By default the list window is opened on the
+ bottom. Set this variable to 'topleft' or '' to change this behaviour.
+ See |tlib#input#List()|.
+
+ *g:tlib#scratch#hidden*
+g:tlib#scratch#hidden (default: 'hide')
+ If you want the scratch buffer to be fully removed, you might want to
+ set this variable to 'wipe'.
+ See also https://github.com/tomtom/tlib_vim/pull/16
+
+ *tlib#scratch#UseScratch()*
+tlib#scratch#UseScratch(?keyargs={})
+ Display a scratch buffer (a buffer with no file). See :TScratch for an
+ example.
+ Return the scratch buffer's number.
+ Values for keyargs:
+ scratch_split ... 1: split, 0: window, -1: tab
+
+ *tlib#scratch#CloseScratch()*
+tlib#scratch#CloseScratch(keyargs, ...)
+ Close a scratch buffer as defined in keyargs (usually a World).
+ Return 1 if the scratch buffer is closed (or if it already was
+ closed).
+
+
+========================================================================
+autoload/tlib/autocmdgroup.vim~
+
+ *tlib#autocmdgroup#Init()*
+tlib#autocmdgroup#Init()
+
+
+========================================================================
+autoload/tlib/cache.vim~
+
+ *g:tlib_cache*
+g:tlib_cache (default: '')
+ The cache directory. If empty, use |tlib#dir#MyRuntime|.'/cache'.
+ You might want to delete old files from this directory from time to
+ time with a command like: >
+ find ~/vimfiles/cache/ -atime +31 -type f -print -delete
+<
+
+ *g:tlib#cache#purge_days*
+g:tlib#cache#purge_days (default: 31)
+ |tlib#cache#Purge()|: Remove cache files older than N days.
+
+ *g:tlib#cache#purge_every_days*
+g:tlib#cache#purge_every_days (default: 31)
+ Purge the cache every N days. Disable automatic purging by setting
+ this value to a negative value.
+
+ *g:tlib#cache#script_encoding*
+g:tlib#cache#script_encoding (default: &enc)
+ The encoding used for the purge-cache script.
+ Default: 'enc'
+
+ *g:tlib#cache#run_script*
+g:tlib#cache#run_script (default: 1)
+ Whether to run the directory removal script:
+ 0 ... No
+ 1 ... Query user
+ 2 ... Yes
+
+ *g:tlib#cache#verbosity*
+g:tlib#cache#verbosity (default: 1)
+ Verbosity level:
+ 0 ... Be quiet
+ 1 ... Display informative message
+ 2 ... Display detailed messages
+
+ *g:tlib#cache#dont_purge*
+g:tlib#cache#dont_purge (default: ['[\/]\.last_purge$'])
+ A list of regexps that are matched against partial filenames of the
+ cached files. If a regexp matches, the file won't be removed by
+ |tlib#cache#Purge()|.
+
+ *g:tlib#cache#max_filename*
+g:tlib#cache#max_filename (default: 200)
+ If the cache filename is longer than N characters, use
+ |pathshorten()|.
+
+ *tlib#cache#Dir()*
+tlib#cache#Dir(?mode = 'bg')
+ The default cache directory.
+
+ *tlib#cache#Filename()*
+tlib#cache#Filename(type, ?file=%, ?mkdir=0, ?dir='')
+
+ *tlib#cache#Save()*
+tlib#cache#Save(cfile, dictionary, ...)
+
+ *tlib#cache#MTime()*
+tlib#cache#MTime(cfile)
+
+ *tlib#cache#Get()*
+tlib#cache#Get(cfile, ...)
+
+ *tlib#cache#Value()*
+tlib#cache#Value(cfile, generator, ftime, ?generator_args=[], ?options={})
+ Get a cached value from cfile. If it is outdated (compared to ftime)
+ or does not exist, create it calling a generator function.
+
+ *tlib#cache#MaybePurge()*
+tlib#cache#MaybePurge()
+ Call |tlib#cache#Purge()| if the last purge was done before
+ |g:tlib#cache#purge_every_days|.
+
+ *tlib#cache#Purge()*
+tlib#cache#Purge()
+ Delete old files.
+
+ *tlib#cache#ListFilesInCache()*
+tlib#cache#ListFilesInCache(...)
+
+
+========================================================================
+autoload/tlib/normal.vim~
+
+ *tlib#normal#WithRegister()*
+tlib#normal#WithRegister(cmd, ?register='t', ?norm_cmd='norm!')
+ Execute a normal command while maintaining all registers.
+
+
+========================================================================
+autoload/tlib/time.vim~
+
+ *tlib#time#MSecs()*
+tlib#time#MSecs()
+
+ *tlib#time#Now()*
+tlib#time#Now()
+
+ *tlib#time#FormatNow()*
+tlib#time#FormatNow()
+
+ *tlib#time#Diff()*
+tlib#time#Diff(a, b, ...)
+
+ *tlib#time#DiffMSecs()*
+tlib#time#DiffMSecs(a, b, ...)
+
+
+========================================================================
+autoload/tlib/var.vim~
+
+ *tlib#var#Let()*
+tlib#var#Let(name, val)
+ Define a variable called NAME if yet undefined.
+ You can also use the :TLLet command.
+
+ EXAMPLES: >
+ exec tlib#var#Let('g:foo', 1)
+ TLet g:foo = 1
+<
+
+ *tlib#var#EGet()*
+tlib#var#EGet(var, namespace, ?default='')
+ Retrieve a variable by searching several namespaces.
+
+ EXAMPLES: >
+ let g:foo = 1
+ let b:foo = 2
+ let w:foo = 3
+ echo eval(tlib#var#EGet('foo', 'vg')) => 1
+ echo eval(tlib#var#EGet('foo', 'bg')) => 2
+ echo eval(tlib#var#EGet('foo', 'wbg')) => 3
+<
+
+ *tlib#var#Get()*
+tlib#var#Get(var, namespace, ?default='')
+ Retrieve a variable by searching several namespaces.
+
+ EXAMPLES: >
+ let g:foo = 1
+ let b:foo = 2
+ let w:foo = 3
+ echo tlib#var#Get('foo', 'bg') => 1
+ echo tlib#var#Get('foo', 'bg') => 2
+ echo tlib#var#Get('foo', 'wbg') => 3
+<
+
+ *tlib#var#List()*
+tlib#var#List(rx, ?prefix='')
+ Get a list of variables matching rx.
+ EXAMPLE:
+ echo tlib#var#List('tlib_', 'g:')
+
+
+========================================================================
+autoload/tlib/agent.vim~
+Various agents for use as key handlers in tlib#input#List()
+
+ *g:tlib_scroll_lines*
+g:tlib_scroll_lines (default: 10)
+ Number of items to move when pressing <c-up/down> in the input list window.
+
+ *tlib#agent#Exit()*
+tlib#agent#Exit(world, selected)
+
+ *tlib#agent#CopyItems()*
+tlib#agent#CopyItems(world, selected)
+
+ *tlib#agent#PageUp()*
+tlib#agent#PageUp(world, selected)
+
+ *tlib#agent#PageDown()*
+tlib#agent#PageDown(world, selected)
+
+ *tlib#agent#Home()*
+tlib#agent#Home(world, selected)
+
+ *tlib#agent#End()*
+tlib#agent#End(world, selected)
+
+ *tlib#agent#Up()*
+tlib#agent#Up(world, selected, ...)
+
+ *tlib#agent#Down()*
+tlib#agent#Down(world, selected, ...)
+
+ *tlib#agent#UpN()*
+tlib#agent#UpN(world, selected)
+
+ *tlib#agent#DownN()*
+tlib#agent#DownN(world, selected)
+
+ *tlib#agent#ShiftLeft()*
+tlib#agent#ShiftLeft(world, selected)
+
+ *tlib#agent#ShiftRight()*
+tlib#agent#ShiftRight(world, selected)
+
+ *tlib#agent#Reset()*
+tlib#agent#Reset(world, selected)
+
+ *tlib#agent#ToggleRestrictView()*
+tlib#agent#ToggleRestrictView(world, selected)
+
+ *tlib#agent#RestrictView()*
+tlib#agent#RestrictView(world, selected)
+
+ *tlib#agent#UnrestrictView()*
+tlib#agent#UnrestrictView(world, selected)
+
+ *tlib#agent#Input()*
+tlib#agent#Input(world, selected)
+
+ *tlib#agent#SuspendToParentWindow()*
+tlib#agent#SuspendToParentWindow(world, selected)
+ Suspend (see |tlib#agent#Suspend|) the input loop and jump back to the
+ original position in the parent window.
+
+ *tlib#agent#Suspend()*
+tlib#agent#Suspend(world, selected)
+ Suspend lets you temporarily leave the input loop of
+ |tlib#input#List|. You can resume editing the list by pressing <c-z>,
+ <m-z>. <space>, <c-LeftMouse> or <MiddleMouse> in the suspended window.
+ <cr> and <LeftMouse> will immediatly select the item under the cursor.
+ < will select the item but the window will remain opened.
+
+ *tlib#agent#Help()*
+tlib#agent#Help(world, selected)
+
+ *tlib#agent#OR()*
+tlib#agent#OR(world, selected)
+
+ *tlib#agent#AND()*
+tlib#agent#AND(world, selected)
+
+ *tlib#agent#ReduceFilter()*
+tlib#agent#ReduceFilter(world, selected)
+
+ *tlib#agent#PopFilter()*
+tlib#agent#PopFilter(world, selected)
+
+ *tlib#agent#Debug()*
+tlib#agent#Debug(world, selected)
+
+ *tlib#agent#Select()*
+tlib#agent#Select(world, selected)
+
+ *tlib#agent#SelectUp()*
+tlib#agent#SelectUp(world, selected)
+
+ *tlib#agent#SelectDown()*
+tlib#agent#SelectDown(world, selected)
+
+ *tlib#agent#SelectAll()*
+tlib#agent#SelectAll(world, selected)
+
+ *tlib#agent#ToggleStickyList()*
+tlib#agent#ToggleStickyList(world, selected)
+
+ *tlib#agent#EditItem()*
+tlib#agent#EditItem(world, selected)
+
+ *tlib#agent#NewItem()*
+tlib#agent#NewItem(world, selected)
+ Insert a new item below the current one.
+
+ *tlib#agent#DeleteItems()*
+tlib#agent#DeleteItems(world, selected)
+
+ *tlib#agent#Cut()*
+tlib#agent#Cut(world, selected)
+
+ *tlib#agent#Copy()*
+tlib#agent#Copy(world, selected)
+
+ *tlib#agent#Paste()*
+tlib#agent#Paste(world, selected)
+
+ *tlib#agent#EditReturnValue()*
+tlib#agent#EditReturnValue(world, rv)
+
+ *tlib#agent#ViewFile()*
+tlib#agent#ViewFile(world, selected)
+
+ *tlib#agent#EditFile()*
+tlib#agent#EditFile(world, selected)
+
+ *tlib#agent#EditFileInSplit()*
+tlib#agent#EditFileInSplit(world, selected)
+
+ *tlib#agent#EditFileInVSplit()*
+tlib#agent#EditFileInVSplit(world, selected)
+
+ *tlib#agent#EditFileInTab()*
+tlib#agent#EditFileInTab(world, selected)
+
+ *tlib#agent#ToggleScrollbind()*
+tlib#agent#ToggleScrollbind(world, selected)
+
+ *tlib#agent#ShowInfo()*
+tlib#agent#ShowInfo(world, selected)
+
+ *tlib#agent#PreviewLine()*
+tlib#agent#PreviewLine(world, selected)
+
+ *tlib#agent#GotoLine()*
+tlib#agent#GotoLine(world, selected)
+ If not called from the scratch, we assume/guess that we don't have to
+ suspend the input-evaluation loop.
+
+ *tlib#agent#DoAtLine()*
+tlib#agent#DoAtLine(world, selected)
+
+ *tlib#agent#Wildcard()*
+tlib#agent#Wildcard(world, selected)
+
+ *tlib#agent#Null()*
+tlib#agent#Null(world, selected)
+
+ *tlib#agent#ExecAgentByName()*
+tlib#agent#ExecAgentByName(world, selected)
+
+ *tlib#agent#CompleteAgentNames()*
+tlib#agent#CompleteAgentNames(ArgLead, CmdLine, CursorPos)
+
+ *tlib#agent#Complete()*
+tlib#agent#Complete(world, selected)
+
+
+========================================================================
+autoload/tlib/bitwise.vim~
+
+ *tlib#bitwise#Num2Bits()*
+tlib#bitwise#Num2Bits(num)
+
+ *tlib#bitwise#Bits2Num()*
+tlib#bitwise#Bits2Num(bits, ...)
+
+ *tlib#bitwise#AND()*
+tlib#bitwise#AND(num1, num2, ...)
+
+ *tlib#bitwise#OR()*
+tlib#bitwise#OR(num1, num2, ...)
+
+ *tlib#bitwise#XOR()*
+tlib#bitwise#XOR(num1, num2, ...)
+
+ *tlib#bitwise#ShiftRight()*
+tlib#bitwise#ShiftRight(bits, n)
+
+ *tlib#bitwise#ShiftLeft()*
+tlib#bitwise#ShiftLeft(bits, n)
+
+ *tlib#bitwise#Add()*
+tlib#bitwise#Add(num1, num2, ...)
+
+ *tlib#bitwise#Sub()*
+tlib#bitwise#Sub(num1, num2, ...)
+
+
+========================================================================
+autoload/tlib/url.vim~
+
+ *tlib#url#Decode()*
+tlib#url#Decode(url)
+ Decode an encoded URL.
+
+ *tlib#url#DecodeChar()*
+tlib#url#DecodeChar(char)
+ Decode a single character.
+
+ *tlib#url#EncodeChar()*
+tlib#url#EncodeChar(char)
+ Encode a single character.
+
+ *tlib#url#Encode()*
+tlib#url#Encode(url, ...)
+ Encode an URL.
+
+
+========================================================================
+autoload/tlib/signs.vim~
+
+ *tlib#signs#ClearAll()*
+tlib#signs#ClearAll(sign)
+ Clear all signs with name SIGN.
+
+ *tlib#signs#ClearBuffer()*
+tlib#signs#ClearBuffer(sign, bufnr)
+ Clear all signs with name SIGN in buffer BUFNR.
+
+ *tlib#signs#Mark()*
+tlib#signs#Mark(sign, list)
+ Add signs for all locations in LIST. LIST must adhere with the
+ quickfix list format (see |getqflist()|; only the fields lnum and
+ bufnr are required).
+
+ list:: a quickfix or location list
+ sign:: a sign defined with |:sign-define|
+
+
+========================================================================
+autoload/tlib/rx.vim~
+
+ *tlib#rx#Escape()*
+tlib#rx#Escape(text, ?magic='m')
+ magic can be one of: m, M, v, V
+ See :help 'magic'
+
+ *tlib#rx#EscapeReplace()*
+tlib#rx#EscapeReplace(text, ?magic='m')
+ Escape return |sub-replace-special|.
+
+ *tlib#rx#Suffixes()*
+tlib#rx#Suffixes(...)
+
+ *tlib#rx#LooksLikeRegexp()*
+tlib#rx#LooksLikeRegexp(text)
+
+
+========================================================================
+autoload/tlib/tag.vim~
+
+ *g:tlib_tags_extra*
+g:tlib_tags_extra (default: '')
+ Extra tags for |tlib#tag#Retrieve()| (see there). Can also be buffer-local.
+
+ *g:tlib_tag_substitute*
+g:tlib_tag_substitute
+ Filter the tag description through |substitute()| for these filetypes.
+ This applies only if the tag cmd field (see |taglist()|) is used.
+
+ *tlib#tag#Retrieve()*
+tlib#tag#Retrieve(rx, ?extra_tags=0)
+ Get all tags matching rx. Basically, this function simply calls
+ |taglist()|, but when extra_tags is true, the list of the tag files
+ (see 'tags') is temporarily expanded with |g:tlib_tags_extra|.
+
+ Example use:
+ If you want to include tags for, eg, JDK, normal tags use can become
+ slow. You could proceed as follows:
+ 1. Create a tags file for the JDK sources. When creating the tags
+ file, make sure to include inheritance information and the like
+ (command-line options like --fields=+iaSm --extra=+q should be ok).
+ In this example, we want tags only for public methods (there are
+ most likely better ways to do this): >
+ ctags -R --fields=+iaSm --extra=+q ${JAVA_HOME}/src
+ head -n 6 tags > tags0
+ grep access:public tags >> tags0
+< 2. Make 'tags' include project specific tags files. In
+ ~/vimfiles/after/ftplugin/java.vim insert: >
+ let b:tlib_tags_extra = $JAVA_HOME .'/tags0'
+< 3. When this function is invoked as >
+ echo tlib#tag#Retrieve('print')
+< it will return only project-local tags. If it is invoked as >
+ echo tlib#tag#Retrieve('print', 1)
+< tags from the JDK will be included.
+
+ *tlib#tag#Collect()*
+tlib#tag#Collect(constraints, ?use_extra=1, ?match_front=1)
+ Retrieve tags that meet the constraints (a dictionnary of fields and
+ regexp, with the exception of the kind field which is a list of chars).
+ For the use of the optional use_extra argument see
+ |tlib#tag#Retrieve()|.
+
+ *tlib#tag#Format()*
+tlib#tag#Format(tag)
+
+
+========================================================================
+autoload/tlib/map.vim~
+
+ *tlib#map#PumAccept()*
+tlib#map#PumAccept(key)
+ If |pumvisible()| is true, return "\<c-y>". Otherwise return a:key.
+ For use in maps like: >
+ imap <expr> <cr> tlib#map#PumAccept("\<cr>")
+<
+
+
+========================================================================
+autoload/tlib/Filter_cnfd.vim~
+
+ *tlib#Filter_cnfd#New()*
+tlib#Filter_cnfd#New(...)
+ The same as |tlib#Filter_cnf#New()| but a dot is expanded to '\.\{-}'.
+ As a consequence, patterns cannot match dots.
+ The pattern is a '/\V' very no-'/magic' regexp pattern.
+
+
+========================================================================
+autoload/tlib/input.vim~
+Input-related, select from a list etc.
+
+ *g:tlib#input#sortprefs_threshold*
+g:tlib#input#sortprefs_threshold (default: 200)
+ If a list is bigger than this value, don't try to be smart when
+ selecting an item. Be slightly faster instead.
+ See |tlib#input#List()|.
+
+ *g:tlib#input#livesearch_threshold*
+g:tlib#input#livesearch_threshold (default: 1000)
+ If a list contains more items, |tlib#input#List()| does not perform an
+ incremental "live search" but uses |input()| to query the user for a
+ filter. This is useful on slower machines or with very long lists.
+
+ *g:tlib#input#filter_mode*
+g:tlib#input#filter_mode (default: 'glob')
+ Determine how |tlib#input#List()| and related functions work.
+ Can be "glob", "cnf", "cnfd", "seq", or "fuzzy". See:
+ glob ... Like cnf but "*" and "?" (see |g:tlib#Filter_glob#seq|,
+ |g:tlib#Filter_glob#char|) are interpreted as glob-like
+ |wildcards| (this is the default method)
+ - Examples:
+ - "f*o" matches "fo", "fxo", and "fxxxoo", but doesn't match
+ "far".
+ - Otherwise it is a derivate of the cnf method (see below).
+ - See also |tlib#Filter_glob#New()|.
+ cnfd ... Like cnf but "." is interpreted as a wildcard, i.e. it is
+ expanded to "\.\{-}"
+ - A period character (".") acts as a wildcard as if ".\{-}" (see
+ |/\{-|) were entered.
+ - Examples:
+ - "f.o" matches "fo", "fxo", and "fxxxoo", but doesn't match
+ "far".
+ - Otherwise it is a derivate of the cnf method (see below).
+ - See also |tlib#Filter_cnfd#New()|.
+ cnf .... Match substrings
+ - A blank creates an AND conjunction, i.e. the next pattern has to
+ match too.
+ - A pipe character ("|") creates an OR conjunction, either this or
+ the next next pattern has to match.
+ - Patterns are very 'nomagic' |regexp| with a |\V| prefix.
+ - A pattern starting with "-" makes the filter exclude items
+ matching that pattern.
+ - Examples:
+ - "foo bar" matches items that contain the strings "foo" AND
+ "bar".
+ - "foo|bar boo|far" matches items that contain either ("foo" OR
+ "bar") AND ("boo" OR "far").
+ - See also |tlib#Filter_cnf#New()|.
+ seq .... Match sequences of characters
+ - |tlib#Filter_seq#New()|
+ fuzzy .. Match fuzzy character sequences
+ - |tlib#Filter_fuzzy#New()|
+
+ *g:tlib#input#higroup*
+g:tlib#input#higroup (default: 'IncSearch')
+ The highlight group to use for showing matches in the input list
+ window.
+ See |tlib#input#List()|.
+
+ *g:tlib_pick_last_item*
+g:tlib_pick_last_item (default: 1)
+ When 1, automatically select the last remaining item only if the list
+ had only one item to begin with.
+ When 2, automatically select a last remaining item after applying
+ any filters.
+ See |tlib#input#List()|.
+
+
+Keys for |tlib#input#List|~
+
+ *g:tlib#input#and*
+g:tlib#input#and (default: ' ')
+
+ *g:tlib#input#or*
+g:tlib#input#or (default: '|')
+
+ *g:tlib#input#not*
+g:tlib#input#not (default: '-')
+
+ *g:tlib#input#numeric_chars*
+g:tlib#input#numeric_chars
+ When editing a list with |tlib#input#List|, typing these numeric chars
+ (as returned by getchar()) will select an item based on its index, not
+ based on its name. I.e. in the default setting, typing a "4" will
+ select the fourth item, not the item called "4".
+ In order to make keys 0-9 filter the items in the list and make
+ <m-[0-9]> select an item by its index, remove the keys 48 to 57 from
+ this dictionary.
+ Format: [KEY] = BASE ... the number is calculated as KEY - BASE.
+
+ *g:tlib#input#keyagents_InputList_s*
+g:tlib#input#keyagents_InputList_s
+ The default key bindings for single-item-select list views.
+
+ This variable is best customized via the variable
+ g:tlib_extend_keyagents_InputList_s. If you want to use <c-j>, <c-k>
+ to move the cursor up and down, add these two lines to your |vimrc|
+ file:
+
+ let g:tlib_extend_keyagents_InputList_s = {
+ \ 10: 'tlib#agent#Down',
+ \ 11: 'tlib#agent#Up'
+ \ }
+
+ *g:tlib#input#keyagents_InputList_m*
+g:tlib#input#keyagents_InputList_m
+
+ *g:tlib#input#handlers_EditList*
+g:tlib#input#handlers_EditList
+
+ *g:tlib#input#user_shortcuts*
+g:tlib#input#user_shortcuts (default: {})
+ A dictionary KEY => {'agent': AGENT, 'key_name': KEY_NAME} to
+ customize keyboard shortcuts in the list view.
+
+ *g:tlib#input#use_popup*
+g:tlib#input#use_popup (default: has('menu') && (has('gui_gtk') || has('gui_gtk2') || has('gui_win32')))
+ If true, define a popup menu for |tlib#input#List()| and related
+ functions.
+
+ *g:tlib#input#format_filename*
+g:tlib#input#format_filename (default: 'l')
+ How to format filenames:
+ l ... Show basenames on the left side, separated from the
+ directory names
+ r ... Show basenames on the right side
+
+ *g:tlib#input#filename_padding_r*
+g:tlib#input#filename_padding_r (default: '&co / 10')
+ If g:tlib#input#format_filename == 'r', how much space should be kept
+ free on the right side.
+
+ *g:tlib#input#filename_max_width*
+g:tlib#input#filename_max_width (default: '&co / 2')
+ If g:tlib#input#format_filename == 'l', an expression that
+ |eval()|uates to the maximum display width of filenames.
+
+ *tlib#input#List()*
+tlib#input#List(type. ?query='', ?list=[], ?handlers=[], ?default="", ?timeout=0)
+ Select a single or multiple items from a list. Return either the list
+ of selected elements or its indexes.
+
+ By default, typing numbers will select an item by its index. See
+ |g:tlib#input#numeric_chars| to find out how to change this.
+
+ The item is automatically selected if the numbers typed equals the
+ number of digits of the list length. I.e. if a list contains 20 items,
+ typing 1 will first highlight item 1 but it won't select/use it
+ because 1 is an ambiguous input in this context. If you press enter,
+ the first item will be selected. If you press another digit (e.g. 0),
+ item 10 will be selected. Another way to select item 1 would be to
+ type 01. If the list contains only 9 items, typing 1 would select the
+ first item right away.
+
+ type can be:
+ s ... Return one selected element
+ si ... Return the index of the selected element
+ m ... Return a list of selected elements
+ mi ... Return a list of indexes
+
+ Several pattern matching styles are supported. See
+ |g:tlib#input#filter_mode|.
+
+ Users can type <Tab> to complete the current filter with the longest
+ match.
+
+ EXAMPLES: >
+ echo tlib#input#List('s', 'Select one item', [100,200,300])
+ echo tlib#input#List('si', 'Select one item', [100,200,300])
+ echo tlib#input#List('m', 'Select one or more item(s)', [100,200,300])
+ echo tlib#input#List('mi', 'Select one or more item(s)', [100,200,300])
+
+< See ../samples/tlib/input/tlib_input_list.vim (move the cursor over
+ the filename and press gf) for a more elaborated example.
+
+ *tlib#input#ListD()*
+tlib#input#ListD(dict)
+ A wrapper for |tlib#input#ListW()| that builds |tlib#World#New| from
+ dict.
+
+ *tlib#input#ListW()*
+tlib#input#ListW(world, ?command='')
+ The second argument (command) is meant for internal use only.
+ The same as |tlib#input#List| but the arguments are packed into world
+ (an instance of tlib#World as returned by |tlib#World#New|).
+
+ *tlib#input#EditList()*
+tlib#input#EditList(query, list, ?timeout=0)
+ Edit a list.
+
+ EXAMPLES: >
+ echo tlib#input#EditList('Edit:', [100,200,300])
+<
+
+ *tlib#input#Resume()*
+tlib#input#Resume(name, pick, bufnr)
+
+ *tlib#input#CommandSelect()*
+tlib#input#CommandSelect(command, ?keyargs={})
+ Take a command, view the output, and let the user select an item from
+ its output.
+
+ EXAMPLE: >
+ command! TMarks exec 'norm! `'. matchstr(tlib#input#CommandSelect('marks'), '^ \+\zs.')
+ command! TAbbrevs exec 'norm i'. matchstr(tlib#input#CommandSelect('abbrev'), '^\S\+\s\+\zs\S\+')
+<
+
+ *tlib#input#Edit()*
+tlib#input#Edit(name, value, callback, ?cb_args=[])
+
+ Edit a value (asynchronously) in a scratch buffer. Use name for
+ identification. Call callback when done (or on cancel).
+ In the scratch buffer:
+ Press <c-s> or <c-w><cr> to enter the new value, <c-w>c to cancel
+ editing.
+ EXAMPLES: >
+ fun! FooContinue(success, text)
+ if a:success
+ let b:var = a:text
+ endif
+ endf
+ call tlib#input#Edit('foo', b:var, 'FooContinue')
+<
+
+ *tlib#input#Dialog()*
+tlib#input#Dialog(text, options, default)
+
+
+========================================================================
+autoload/tlib/number.vim~
+
+ *tlib#number#ConvertBase()*
+tlib#number#ConvertBase(num, base, ...)
+
+
+========================================================================
+autoload/tlib/file.vim~
+
+ *g:tlib#file#drop*
+g:tlib#file#drop (default: has('gui'))
+ If true, use |:drop| to edit loaded buffers (only available with GUI).
+
+ *g:tlib#file#use_tabs*
+g:tlib#file#use_tabs (default: 0)
+
+ *g:tlib#file#edit_cmds*
+g:tlib#file#edit_cmds (default: g:tlib#file#use_tabs ? {'buffer': 'tab split | buffer', 'edit': 'tabedit'} : {})
+
+ *g:tlib#file#absolute_filename_rx*
+g:tlib#file#absolute_filename_rx (default: '^\~\?[\/]')
+
+ *tlib#file#Split()*
+tlib#file#Split(filename)
+ EXAMPLES: >
+ tlib#file#Split('foo/bar/filename.txt')
+ => ['foo', 'bar', 'filename.txt']
+<
+
+ *tlib#file#Join()*
+tlib#file#Join(filename_parts, ?strip_slashes=1, ?maybe_absolute=0)
+ EXAMPLES: >
+ tlib#file#Join(['foo', 'bar', 'filename.txt'])
+ => 'foo/bar/filename.txt'
+<
+
+ *tlib#file#Relative()*
+tlib#file#Relative(filename, basedir)
+ EXAMPLES: >
+ tlib#file#Relative('foo/bar/filename.txt', 'foo')
+ => 'bar/filename.txt'
+<
+
+ *tlib#file#IsAbsolute()*
+tlib#file#IsAbsolute(filename)
+
+ *tlib#file#Absolute()*
+tlib#file#Absolute(filename, ...)
+
+ *tlib#file#Canonic()*
+tlib#file#Canonic(filename, ...)
+
+ *tlib#file#With()*
+tlib#file#With(fcmd, bcmd, files, ?world={})
+
+ *tlib#file#Edit()*
+tlib#file#Edit(fileid)
+ Return 0 if the file isn't readable/doesn't exist.
+ Otherwise return 1.
+
+ *tlib#file#Glob()*
+tlib#file#Glob(pattern)
+
+ *tlib#file#Globpath()*
+tlib#file#Globpath(path, pattern)
+
+
+========================================================================
+autoload/tlib/sys.vim~
+
+ *g:tlib#sys#special_protocols*
+g:tlib#sys#special_protocols (default: ['https\?', 'nntp', 'mailto'])
+ A list of |regexp|s matching protocol names that should be handled
+ by |g:tlib#sys#system_browser|.
+ CAVEAT: Must be a |\V| |regexp|.
+
+ *g:tlib#sys#special_suffixes*
+g:tlib#sys#special_suffixes (default: ['xlsx\?', 'docx\?', 'pptx\?', 'accdb', 'mdb', 'sqlite', 'pdf', 'jpg', 'png', 'gif', 'od\[tspg]'])
+ A list of |regexp|s matching suffixes that should be handled by
+ |g:tlib#sys#system_browser|.
+ CAVEAT: Must be a |\V| |regexp|.
+
+ *g:tlib#sys#system_rx*
+g:tlib#sys#system_rx (default: printf('\V\%(\^\%(%s\):\|.\%(%s\)\$\)', join(g:tlib#sys#special_protocols, '\|'), join(g:tlib#sys#special_suffixes, '\|')))
+ Open links matching this |regexp| with |g:tlib#sys#system_browser|.
+ CAVEAT: Must be a |\V| |regexp|.
+
+ *g:tlib#sys#system_browser*
+g:tlib#sys#system_browser (default: ...)
+ Open files in the system browser.
+
+ *g:tlib#sys#windows*
+g:tlib#sys#windows (default: &shell !~ 'sh' && (has('win16') || has('win32') || has('win64')))
+
+ *g:tlib#sys#null*
+g:tlib#sys#null (default: g:tlib#sys#windows ? 'NUL' : (filereadable('/dev/null') ? '/dev/null' : ''))
+
+ *tlib#sys#IsCygwinBin()*
+tlib#sys#IsCygwinBin(cmd)
+
+ *tlib#sys#IsExecutable()*
+tlib#sys#IsExecutable(cmd, ...)
+
+ *g:tlib#sys#check_cygpath*
+g:tlib#sys#check_cygpath (default: g:tlib#sys#windows && tlib#sys#IsExecutable('cygpath', 1))
+ If true, check whether we have to convert a path via cyppath --
+ see |tlib#sys#MaybeUseCygpath|
+
+ *g:tlib#sys#cygwin_path_rx*
+g:tlib#sys#cygwin_path_rx (default: '/cygwin/')
+ If a full windows filename (with slashes instead of backslashes)
+ matches this |regexp|, it is assumed to be a cygwin executable.
+
+ *g:tlib#sys#cygwin_expr*
+g:tlib#sys#cygwin_expr (default: '"bash -c ''". escape(%s, "''\\") ."''"')
+ For cygwin binaries, convert command calls using this vim
+ expression.
+
+ *tlib#sys#GetCmd()*
+tlib#sys#GetCmd(cmd)
+
+ *tlib#sys#MaybeUseCygpath()*
+tlib#sys#MaybeUseCygpath(cmd)
+ If cmd seems to be a cygwin executable, use cygpath to convert
+ filenames. This assumes that cygwin's which command returns full
+ filenames for non-cygwin executables.
+
+ *tlib#sys#ConvertPath()*
+tlib#sys#ConvertPath(converter, filename)
+
+ *tlib#sys#FileArgs()*
+tlib#sys#FileArgs(cmd, files)
+
+ *tlib#sys#IsSpecial()*
+tlib#sys#IsSpecial(filename)
+ Check whether filename matches |g:tlib#sys#system_rx|, i.e. whether it
+ is a special file that should not be opened in vim.
+
+ *tlib#sys#Open()*
+tlib#sys#Open(filename)
+ Open filename with the default OS application (see
+ |g:tlib#sys#system_browser|), if |tlib#sys#IsSpecial()| return 1.
+ Returns 1 if successful or 0 otherwise.
+
+ *tlib#sys#SystemInDir()*
+tlib#sys#SystemInDir(dir, expr, ?input='')
+
+
+========================================================================
+autoload/tlib/paragraph.vim~
+
+ *tlib#paragraph#GetMetric()*
+tlib#paragraph#GetMetric()
+ Return an object describing a |paragraph|.
+
+ *tlib#paragraph#Move()*
+tlib#paragraph#Move(direction, count)
+ This function can be used with the tinymode plugin to move around
+ paragraphs.
+
+ Example configuration: >
+
+ call tinymode#EnterMap("para_move", "gp")
+ call tinymode#ModeMsg("para_move", "Move paragraph: j/k")
+ call tinymode#Map("para_move", "j", "silent call tlib#paragraph#Move('Down', '[N]')")
+ call tinymode#Map("para_move", "k", "silent call tlib#paragraph#Move('Up', '[N]')")
+ call tinymode#ModeArg("para_move", "owncount", 1)
+<
+
+
+========================================================================
+autoload/tlib/World.vim~
+A prototype used by |tlib#input#List|.
+Inherits from |tlib#Object#New|.
+
+ *g:tlib_inputlist_pct*
+g:tlib_inputlist_pct (default: 50)
+ Size of the input list window (in percent) from the main size (of &lines).
+ See |tlib#input#List()|.
+
+ *g:tlib_inputlist_width_filename*
+g:tlib_inputlist_width_filename (default: '&co / 3')
+ Size of filename columns when listing filenames.
+ See |tlib#input#List()|.
+
+ *g:tlib_inputlist_filename_indicators*
+g:tlib_inputlist_filename_indicators (default: 0)
+ If true, |tlib#input#List()| will show some indicators about the
+ status of a filename (e.g. buflisted(), bufloaded() etc.).
+ This is disabled by default because vim checks also for the file on
+ disk when doing this.
+
+ *g:tlib_inputlist_shortmessage*
+g:tlib_inputlist_shortmessage (default: 0)
+ If not null, display only a short info about the filter.
+
+ *tlib#World#New()*
+tlib#World#New(...)
+
+prototype.PrintLines
+
+prototype.Suspend
+
+
+========================================================================
+autoload/tlib/loclist.vim~
+
+ *tlib#loclist#Browse()*
+tlib#loclist#Browse(...)
+
+
+========================================================================
+autoload/tlib/tab.vim~
+
+ *tlib#tab#BufMap()*
+tlib#tab#BufMap()
+ Return a dictionary of bufnumbers => [[tabpage, winnr] ...]
+
+ *tlib#tab#TabWinNr()*
+tlib#tab#TabWinNr(buffer)
+ Find a buffer's window at some tab page.
+
+ *tlib#tab#Set()*
+tlib#tab#Set(tabnr)
+
+
+========================================================================
+autoload/tlib/date.vim~
+
+ *tlib#date#IsDate()*
+tlib#date#IsDate(text)
+
+ *tlib#date#Format()*
+tlib#date#Format(...)
+
+ *tlib#date#DiffInDays()*
+tlib#date#DiffInDays(date1, ?date2=localtime(), ?allow_zero=0)
+
+ *tlib#date#Parse()*
+tlib#date#Parse(date, ?allow_zero=0, ?silent=0) "{{{3
+
+ *tlib#date#SecondsSince1970()*
+tlib#date#SecondsSince1970(date, ...)
+ tlib#date#SecondsSince1970(date, ?daysshift=0, ?allow_zero=0)
+
+ *tlib#date#Shift()*
+tlib#date#Shift(date, shift)
+
+ *tlib#date#AddDays()*
+tlib#date#AddDays(date, n)
+
+
+========================================================================
+autoload/tlib/type.vim~
+
+ *tlib#type#Enable()*
+tlib#type#Enable()
+ Enable type assertiona via |:Tlibtype|.
+
+ *tlib#type#Disable()*
+tlib#type#Disable()
+ Disable type assertiona via |:Tlibtype|.
+
+ *tlib#type#IsNumber()*
+tlib#type#IsNumber(expr)
+
+ *tlib#type#IsString()*
+tlib#type#IsString(expr)
+
+ *tlib#type#IsFuncref()*
+tlib#type#IsFuncref(expr)
+
+ *tlib#type#IsList()*
+tlib#type#IsList(expr)
+
+ *tlib#type#IsDictionary()*
+tlib#type#IsDictionary(expr)
+
+ *tlib#type#Is()*
+tlib#type#Is(val, type)
+
+ *tlib#type#Are()*
+tlib#type#Are(vals, type)
+
+ *tlib#type#Define()*
+tlib#type#Define(name, schema)
+
+ *tlib#type#Has()*
+tlib#type#Has(val, schema)
+
+ *tlib#type#Have()*
+tlib#type#Have(vals, schema)
+
+ *tlib#type#Check()*
+tlib#type#Check(caller, names, vals)
+
+
+========================================================================
+autoload/tlib/Filter_fuzzy.vim~
+
+ *tlib#Filter_fuzzy#New()*
+tlib#Filter_fuzzy#New(...)
+ Support for "fuzzy" pattern matching in |tlib#input#List()|.
+ Patterns are interpreted as if characters were connected with '.\{-}'.
+
+ In "fuzzy" mode, the pretty printing of filenames is disabled.
+
+
+========================================================================
+autoload/tlib/assert.vim~
+
+ *tlib#assert#Enable()*
+tlib#assert#Enable()
+ Enable tracing via |:Tlibassert|.
+
+ *tlib#assert#Disable()*
+tlib#assert#Disable()
+ Disable tracing via |:Tlibassert|.
+
+ *tlib#assert#Assert()*
+tlib#assert#Assert(caller, check, vals)
+
+ *tlib#assert#Map()*
+tlib#assert#Map(vals, expr)
+
+ *tlib#assert#All()*
+tlib#assert#All(vals)
+
+
+========================================================================
+autoload/tlib/textobjects.vim~
+
+ *standard-paragraph*
+tlib#textobjects#StandardParagraph()
+ Select a "Standard Paragraph", i.e. a text block followed by blank
+ lines. Other than |ap|, the last paragraph in a document is handled
+ just the same.
+
+ The |text-object| can be accessed as "sp". Example: >
+
+ vsp ... select the current standard paragraph
+
+< Return 1, if the paragraph is the last one in the document.
+
+ *tlib#textobjects#Init()*
+tlib#textobjects#Init()
+
+ *v_sp*
+v_sp ... <Esc>:call tlib#textobjects#StandardParagraph()<CR>
+ sp ... Standard paragraph (for use as |text-objects|).
+
+ *o_sp*
+o_sp ... :<C-u>normal Vsp<CR>
+
+
+========================================================================
+autoload/tlib/arg.vim~
+
+ *tlib#arg#Get()*
+tlib#arg#Get(n, var, ?default="", ?test='')
+ Set a positional argument from a variable argument list.
+ See tlib#string#RemoveBackslashes() for an example.
+
+ *tlib#arg#Let()*
+tlib#arg#Let(list, ?default='')
+ Set a positional arguments from a variable argument list.
+ See tlib#input#List() for an example.
+
+ *tlib#arg#StringAsKeyArgs()*
+tlib#arg#StringAsKeyArgs(string, ?keys=[], ?evaluate=0, ?sep=':', ?booleans=0)
+
+ *tlib#arg#StringAsKeyArgsEqual()*
+tlib#arg#StringAsKeyArgsEqual(string)
+
+ *tlib#arg#GetOpts()*
+tlib#arg#GetOpts(args, ?def={})
+ Convert a list of strings of command-line arguments into a dictonary.
+
+ The main use case is to pass [<f-args>], i.e. the command-line
+ arguments of a command as list, from a command definition to this
+ function.
+
+ Example:
+ ['-h']
+ => If def contains a 'help' key, invoke |:help| on its value.
+
+ ['-ab', '--foo', '--bar=BAR', 'bla', bla']
+ => {'a': 1, 'b': 1, 'foo': 1, 'bar': 'BAR', '__rest__': ['bla', 'bla']}
+
+ ['-ab', '--', '--foo', '--bar=BAR']
+ => {'a': 1, 'b': 1, '__rest__': ['--foo', '--bar=BAR']}
+
+ *tlib#arg#Ex()*
+tlib#arg#Ex(arg, ?chars='%#! ')
+ Escape some characters in a string.
+
+ Use |fnamescape()| if available.
+
+ EXAMPLES: >
+ exec 'edit '. tlib#arg#Ex('foo%#bar.txt')
+<
+
+
+========================================================================
+autoload/tlib/fixes.vim~
+
+ *tlib#fixes#Winpos()*
+tlib#fixes#Winpos()
+
+
+========================================================================
+autoload/tlib/dir.vim~
+
+ *g:tlib#dir#sep*
+g:tlib#dir#sep (default: exists('+shellslash') && !&shellslash ? '\' : '/')
+ TLet g:tlib#dir#sep = '/'
+
+ *tlib#dir#CanonicName()*
+tlib#dir#CanonicName(dirname)
+ EXAMPLES: >
+ tlib#dir#CanonicName('foo/bar')
+ => 'foo/bar/'
+<
+
+ *tlib#dir#NativeName()*
+tlib#dir#NativeName(dirname)
+ EXAMPLES: >
+ tlib#dir#NativeName('foo/bar/')
+ On Windows:
+ => 'foo\bar\'
+ On Linux:
+ => 'foo/bar/'
+<
+
+ *tlib#dir#PlainName()*
+tlib#dir#PlainName(dirname)
+ EXAMPLES: >
+ tlib#dir#PlainName('foo/bar/')
+ => 'foo/bar'
+<
+
+ *tlib#dir#Ensure()*
+tlib#dir#Ensure(dir)
+ Create a directory if it doesn't already exist.
+
+ *tlib#dir#MyRuntime()*
+tlib#dir#MyRuntime()
+ Return the first directory in &rtp.
+
+ *tlib#dir#CD()*
+tlib#dir#CD(dir, ?locally=0)
+
+ *tlib#dir#Push()*
+tlib#dir#Push(dir, ?locally=0)
+
+ *tlib#dir#Pop()*
+tlib#dir#Pop()
+
+
+========================================================================
+autoload/tlib/hash.vim~
+
+ *g:tlib#hash#use_crc32*
+g:tlib#hash#use_crc32 (default: '')
+
+ *g:tlib#hash#use_adler32*
+g:tlib#hash#use_adler32 (default: '')
+
+ *tlib#hash#CRC32B()*
+tlib#hash#CRC32B(chars)
+
+ *tlib#hash#CRC32B_ruby()*
+tlib#hash#CRC32B_ruby(chars)
+
+ *tlib#hash#CRC32B_vim()*
+tlib#hash#CRC32B_vim(chars)
+
+ *tlib#hash#Adler32()*
+tlib#hash#Adler32(chars)
+
+ *tlib#hash#Adler32_vim()*
+tlib#hash#Adler32_vim(chars)
+
+ *tlib#hash#Adler32_tlib()*
+tlib#hash#Adler32_tlib(chars)
+
+
+========================================================================
+autoload/tlib/win.vim~
+
+ *tlib#win#Set()*
+tlib#win#Set(winnr)
+ Return vim code to jump back to the original window.
+
+ *tlib#win#GetLayout()*
+tlib#win#GetLayout(?save_view=0)
+
+ *tlib#win#SetLayout()*
+tlib#win#SetLayout(layout)
+
+ *tlib#win#List()*
+tlib#win#List()
+
+ *tlib#win#Width()*
+tlib#win#Width(wnr)
+
+ *tlib#win#WinDo()*
+tlib#win#WinDo(ex)
+
+
+========================================================================
+autoload/tlib/comments.vim~
+
+ *tlib#comments#Comments()*
+tlib#comments#Comments(...)
+ function! tlib#comments#Comments(?rx='')
+
+
+========================================================================
+autoload/tlib/grep.vim~
+
+ *tlib#grep#Do()*
+tlib#grep#Do(cmd, rx, files)
+
+ *tlib#grep#LocList()*
+tlib#grep#LocList(rx, files)
+
+ *tlib#grep#QuickFixList()*
+tlib#grep#QuickFixList(rx, files)
+
+ *tlib#grep#List()*
+tlib#grep#List(rx, files)
+
+
+========================================================================
+autoload/tlib/qfl.vim~
+
+ *tlib#qfl#FormatQFLE()*
+tlib#qfl#FormatQFLE(qfe)
+
+ *tlib#qfl#QfeFilename()*
+tlib#qfl#QfeFilename(qfe)
+
+ *tlib#qfl#InitListBuffer()*
+tlib#qfl#InitListBuffer(world)
+
+ *tlib#qfl#SetSyntax()*
+tlib#qfl#SetSyntax()
+
+ *tlib#qfl#Balloon()*
+tlib#qfl#Balloon()
+
+ *tlib#qfl#AgentEditQFE()*
+tlib#qfl#AgentEditQFE(world, selected, ...)
+
+ *tlib#qfl#AgentPreviewQFE()*
+tlib#qfl#AgentPreviewQFE(world, selected)
+
+ *tlib#qfl#AgentGotoQFE()*
+tlib#qfl#AgentGotoQFE(world, selected)
+
+ *tlib#qfl#AgentWithSelected()*
+tlib#qfl#AgentWithSelected(world, selected, ...)
+
+ *tlib#qfl#RunCmdOnSelected()*
+tlib#qfl#RunCmdOnSelected(world, selected, cmd, ...)
+
+ *tlib#qfl#AgentSplitBuffer()*
+tlib#qfl#AgentSplitBuffer(world, selected)
+
+ *tlib#qfl#AgentTabBuffer()*
+tlib#qfl#AgentTabBuffer(world, selected)
+
+ *tlib#qfl#AgentVSplitBuffer()*
+tlib#qfl#AgentVSplitBuffer(world, selected)
+
+ *tlib#qfl#AgentEditLine()*
+tlib#qfl#AgentEditLine(world, selected)
+
+ *tlib#qfl#EditLine()*
+tlib#qfl#EditLine(lnum)
+
+ *tlib#qfl#SetFollowCursor()*
+tlib#qfl#SetFollowCursor(world, selected)
+
+ *tlib#qfl#QflList()*
+tlib#qfl#QflList(list, ...)
+
+ *tlib#qfl#Browse()*
+tlib#qfl#Browse(...)
+
+
+========================================================================
+autoload/tlib/Filter_cnf.vim~
+
+ *tlib#Filter_cnf#New()*
+tlib#Filter_cnf#New(...)
+ The search pattern for |tlib#input#List()| is in conjunctive normal
+ form: (P1 OR P2 ...) AND (P3 OR P4 ...) ...
+ The pattern is a '/\V' very no-'/magic' regexp pattern.
+
+ Pressing <space> joins two patterns with AND.
+ Pressing | joins two patterns with OR.
+ I.e. In order to get "lala AND (foo OR bar)", you type
+ "lala foo|bar".
+
+ This is also the base class for other filters.
+
+prototype.Pretty
+
+
+========================================================================
+autoload/tlib/Object.vim~
+Provides a prototype plus some OO-like methods.
+
+ *tlib#Object#New()*
+tlib#Object#New(?fields={})
+ This function creates a prototype that provides some kind of
+ inheritance mechanism and a way to call parent/super methods.
+
+ The usage demonstrated in the following example works best when every
+ class/prototype is defined in a file of its own.
+
+ The reason for why there is a dedicated constructor function is that
+ this layout facilitates the use of templates and that methods are
+ hidden from the user. Other solutions are possible.
+
+ EXAMPLES: >
+ let s:prototype = tlib#Object#New({
+ \ '_class': ['FooBar'],
+ \ 'foo': 1,
+ \ 'bar': 2,
+ \ })
+ " Constructor
+ function! FooBar(...)
+ let object = s:prototype.New(a:0 >= 1 ? a:1 : {})
+ return object
+ endf
+ function! s:prototype.babble() {
+ echo "I think, therefore I am ". (self.foo * self.bar) ." months old."
+ }
+
+< This could now be used like this: >
+ let myfoo = FooBar({'foo': 3})
+ call myfoo.babble()
+ => I think, therefore I am 6 months old.
+ echo myfoo.IsA('FooBar')
+ => 1
+ echo myfoo.IsA('object')
+ => 1
+ echo myfoo.IsA('Foo')
+ => 0
+ echo myfoo.RespondTo('babble')
+ => 1
+ echo myfoo.RespondTo('speak')
+ => 0
+<
+
+prototype.New
+
+prototype.Inherit
+
+prototype.Extend
+
+prototype.IsA
+
+prototype.IsRelated
+
+prototype.RespondTo
+
+prototype.Super
+
+ *tlib#Object#Methods()*
+tlib#Object#Methods(object, ...)
+
+
+========================================================================
+autoload/tlib/buffer.vim~
+
+ *g:tlib_viewline_position*
+g:tlib_viewline_position (default: 'zz')
+ Where to display the line when using |tlib#buffer#ViewLine|.
+ For possible values for position see |scroll-cursor|.
+
+ *tlib#buffer#EnableMRU()*
+tlib#buffer#EnableMRU()
+
+ *tlib#buffer#DisableMRU()*
+tlib#buffer#DisableMRU()
+
+ *tlib#buffer#Set()*
+tlib#buffer#Set(buffer)
+ Set the buffer to buffer and return a command as string that can be
+ evaluated by |:execute| in order to restore the original view.
+
+ *tlib#buffer#Eval()*
+tlib#buffer#Eval(buffer, code)
+ Evaluate CODE in BUFFER.
+
+ EXAMPLES: >
+ call tlib#buffer#Eval('foo.txt', 'echo b:bar')
+<
+
+ *tlib#buffer#GetList()*
+tlib#buffer#GetList(?show_hidden=0, ?show_number=0, " ?order='bufnr')
+ Possible values for the "order" argument:
+ bufnr :: Default behaviour
+ mru :: Sort buffers according to most recent use
+ basename :: Sort by the file's basename (last component)
+
+ NOTE: MRU order works on second invocation only. If you want to always
+ use MRU order, call tlib#buffer#EnableMRU() in your ~/.vimrc file.
+
+ *tlib#buffer#ViewLine()*
+tlib#buffer#ViewLine(line, ?position='z')
+ line is either a number or a string that begins with a number.
+ For possible values for position see |scroll-cursor|.
+ See also |g:tlib_viewline_position|.
+
+ *tlib#buffer#HighlightLine()*
+tlib#buffer#HighlightLine(...)
+
+ *tlib#buffer#DeleteRange()*
+tlib#buffer#DeleteRange(line1, line2)
+ Delete the lines in the current buffer. Wrapper for |:delete|.
+
+ *tlib#buffer#ReplaceRange()*
+tlib#buffer#ReplaceRange(line1, line2, lines)
+ Replace a range of lines.
+
+ *tlib#buffer#ScratchStart()*
+tlib#buffer#ScratchStart()
+ Initialize some scratch area at the bottom of the current buffer.
+
+ *tlib#buffer#ScratchEnd()*
+tlib#buffer#ScratchEnd()
+ Remove the in-buffer scratch area.
+
+ *tlib#buffer#BufDo()*
+tlib#buffer#BufDo(exec)
+ Run exec on all buffers via bufdo and return to the original buffer.
+
+ *tlib#buffer#InsertText()*
+tlib#buffer#InsertText(text, keyargs)
+ Keyargs:
+ 'shift': 0|N
+ 'col': col('.')|N
+ 'lineno': line('.')|N
+ 'indent': 0|1
+ 'pos': 'e'|'s' ... Where to locate the cursor (somewhat like s and e in {offset})
+ Insert text (a string) in the buffer.
+
+ *tlib#buffer#InsertText0()*
+tlib#buffer#InsertText0(text, ...)
+
+ *tlib#buffer#CurrentByte()*
+tlib#buffer#CurrentByte()
+
+ *tlib#buffer#KeepCursorPosition()*
+tlib#buffer#KeepCursorPosition(cmd)
+ Evaluate cmd while maintaining the cursor position and jump registers.
+
+
+========================================================================
+autoload/tlib/hook.vim~
+
+ *tlib#hook#Run()*
+tlib#hook#Run(hook, ?dict={})
+ Execute dict[hook], w:{hook}, b:{hook}, or g:{hook} if existent.
+
+
+========================================================================
+autoload/tlib/string.vim~
+
+ *tlib#string#RemoveBackslashes()*
+tlib#string#RemoveBackslashes(text, ?chars=' ')
+ Remove backslashes from text (but only in front of the characters in
+ chars).
+
+ *tlib#string#Chomp()*
+tlib#string#Chomp(string, ?max=0)
+
+ *tlib#string#Format()*
+tlib#string#Format(template, dict)
+ Format a template string. Placeholders have the format "%{NAME}". A
+ "%" can be inserted as "%%".
+
+ Examples:
+ echo tlib#string#Format("foo %{bar} foo", {'bar': 123})
+ => foo 123 foo
+
+ *tlib#string#Printf1()*
+tlib#string#Printf1(format, string)
+ This function deviates from |printf()| in certain ways.
+ Additional items:
+ %{rx} ... insert escaped regexp
+ %{fuzzyrx} ... insert typo-tolerant regexp
+
+ *tlib#string#TrimLeft()*
+tlib#string#TrimLeft(string)
+
+ *tlib#string#TrimRight()*
+tlib#string#TrimRight(string)
+
+ *tlib#string#Strip()*
+tlib#string#Strip(string)
+
+ *tlib#string#Count()*
+tlib#string#Count(string, rx)
+
+ *tlib#string#SplitCommaList()*
+tlib#string#SplitCommaList(text, ...)
+
+ *tlib#string#Input()*
+tlib#string#Input(...)
+
+
+
+vim:tw=78:fo=w2croql:isk=!-~,^*,^|,^":ts=8:ft=help:norl: