mirror of
https://github.com/amix/vimrc
synced 2025-07-09 02:25:00 +08:00
renamed sources_non_forked folder to bundle
This commit is contained in:
118
bundle/tlib/plugin/02tlib.vim
Normal file
118
bundle/tlib/plugin/02tlib.vim
Normal file
@ -0,0 +1,118 @@
|
||||
" tlib.vim -- Some utility functions
|
||||
" @Author: Tom Link (micathom AT gmail com?subject=[vim])
|
||||
" @Website: http://www.vim.org/account/profile.php?user_id=4037
|
||||
" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
|
||||
" @Created: 2007-04-10.
|
||||
" @Last Change: 2013-09-25.
|
||||
" @Revision: 749
|
||||
" GetLatestVimScripts: 1863 1 tlib.vim
|
||||
|
||||
if &cp || exists("loaded_tlib")
|
||||
finish
|
||||
endif
|
||||
if v:version < 700 "{{{2
|
||||
echoerr "tlib requires Vim >= 7"
|
||||
finish
|
||||
endif
|
||||
let loaded_tlib = 108
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
|
||||
" Init~ {{{1
|
||||
" call tlib#autocmdgroup#Init()
|
||||
|
||||
|
||||
" Commands~ {{{1
|
||||
|
||||
" :display: :TRequire NAME [VERSION [FILE]]
|
||||
" Make a certain vim file is loaded.
|
||||
"
|
||||
" Conventions: If FILE isn't defined, plugin/NAME.vim is loaded. The
|
||||
" file must provide a variable loaded_{NAME} that represents the version
|
||||
" number.
|
||||
command! -nargs=+ TRequire let s:require = [<f-args>]
|
||||
\ | if !exists('loaded_'. get(s:require, 0))
|
||||
\ | exec 'runtime '. get(s:require, 2, 'plugin/'. get(s:require, 0) .'.vim')
|
||||
\ | if !exists('loaded_'. get(s:require, 0)) || loaded_{get(s:require, 0)} < get(s:require, 1, loaded_{get(s:require, 0)})
|
||||
\ | echoerr 'Require '. get(s:require, 0) .' >= '. get(s:require, 1, 'any version will do')
|
||||
\ | finish
|
||||
\ | endif
|
||||
\ | endif | unlet s:require
|
||||
|
||||
|
||||
" :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__
|
||||
command! -bar -nargs=* -bang TScratch call tlib#scratch#UseScratch({'scratch_split': '<bang>' != '!', <args>})
|
||||
|
||||
|
||||
" :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: :TKeyArg DICT, VAR1, [VAR2, DEFAULT2] ...
|
||||
" A convenience wrapper for |tlib#arg#Let|.
|
||||
" EXAMPLES: >
|
||||
" function! Foo(keyargs)
|
||||
" TKeyArg a:keyargs, ['a', 1], 'b'
|
||||
" echo 'a='. a
|
||||
" echo 'b='. b
|
||||
" endf
|
||||
command! -nargs=+ TKeyArg exec tlib#arg#Key([<args>])
|
||||
|
||||
|
||||
" :display: :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
|
||||
command! -nargs=1 -complete=command TBrowseOutput call tlib#cmd#BrowseOutput(<q-args>)
|
||||
|
||||
" :display: :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
|
||||
command! -nargs=0 -complete=command TBrowseScriptnames call
|
||||
\ tlib#cmd#BrowseOutputWithCallback("tlib#cmd#ParseScriptname", "scriptnames")
|
||||
|
||||
" :display: :TTimeCommand CMD
|
||||
" Time the execution time of CMD.
|
||||
command! -nargs=1 -complete=command TTimeCommand call tlib#cmd#Time(<q-args>)
|
||||
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
Reference in New Issue
Block a user