vimrc/sources_non_forked/tlib/plugin/02tlib.vim

103 lines
3.1 KiB
VimL
Raw Normal View History

2012-08-17 03:41:25 +00:00
" @Author: Tom Link (micathom AT gmail com?subject=[vim])
" @Created: 2007-04-10.
2015-12-08 13:20:04 +00:00
" @Last Change: 2015-11-23.
2014-04-18 12:58:02 +00:00
" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
2015-12-08 13:20:04 +00:00
" @Revision: 808
2014-04-18 12:58:02 +00:00
" @Website: http://www.vim.org/account/profile.php?user_id=4037
2012-08-17 03:41:25 +00:00
" GetLatestVimScripts: 1863 1 tlib.vim
2014-04-18 12:58:02 +00:00
" tlib.vim -- Some utility functions
2012-08-17 03:41:25 +00:00
2015-12-08 13:20:04 +00:00
if &cp || exists("g:loaded_tlib")
2012-08-17 03:41:25 +00:00
finish
endif
if v:version < 700 "{{{2
echoerr "tlib requires Vim >= 7"
finish
endif
2015-12-08 13:20:04 +00:00
let g:loaded_tlib = 117
2012-08-17 03:41:25 +00:00
let s:save_cpo = &cpo
set cpo&vim
" :display: :TLet VAR = VALUE
" Set a variable only if it doesn't already exist.
" EXAMPLES: >
" TLet foo = 1
" TLet foo = 2
" echo foo
" => 1
command! -nargs=+ TLet if !exists(matchstr(<q-args>, '^[^=[:space:]]\+')) | exec 'let '. <q-args> | endif
" 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__
2015-12-08 13:20:04 +00:00
command! -bar -nargs=* -bang TScratch call tlib#scratch#UseScratch({'scratch_split': empty('<bang>'), <args>})
2012-08-17 03:41:25 +00:00
" :display: :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
command! -nargs=+ TVarArg exec tlib#arg#Let([<args>])
" :display: :TBrowseOutput COMMAND
2012-08-17 03:41:25 +00:00
" 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
command! -nargs=1 -complete=command TBrowseOutput call tlib#cmd#BrowseOutput(<q-args>)
2015-12-08 13:20:04 +00:00
" :display: :TBrowseScriptnames
2012-08-17 03:41:25 +00:00
" 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
2015-12-08 13:20:04 +00:00
command! -nargs=0 -complete=command TBrowseScriptnames call tlib#cmd#TBrowseScriptnames()
" :display: :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 ...
command! -nargs=+ -bang -bar Tlibtrace :
" :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.
command! -nargs=+ -bang -bar Tlibtraceset call tlib#trace#Set(<q-args>)
2012-08-17 03:41:25 +00:00
2015-12-08 13:20:04 +00:00
" :display: :Tlibtrace ASSERTION
command! -nargs=+ -bang -bar Tlibassert :
2012-08-17 03:41:25 +00:00
let &cpo = s:save_cpo
unlet s:save_cpo