I broke up with neovim....vim is my best friend now
This commit is contained in:
30
dot_vim/plugged/ctrlp.vim/LICENSE
Normal file
30
dot_vim/plugged/ctrlp.vim/LICENSE
Normal file
@@ -0,0 +1,30 @@
|
||||
VIM LICENSE
|
||||
|
||||
I) There are no restrictions on distributing unmodified copies of Vim except that they must include this license text. You can also distribute unmodified parts of Vim, likewise unrestricted except that they must include this license text. You are also allowed to include executables that you made from the unmodified Vim sources, plus your own usage examples and Vim scripts.
|
||||
|
||||
II) It is allowed to distribute a modified (or extended) version of Vim, including executables and/or source code, when the following four conditions are met:
|
||||
|
||||
1) This license text must be included unmodified.
|
||||
|
||||
2) The modified Vim must be distributed in one of the following five ways:
|
||||
|
||||
a) If you make changes to Vim yourself, you must clearly describe in the distribution how to contact you. When the maintainer asks you (in any way) for a copy of the modified Vim you distributed, you must make your changes, including source code, available to the maintainer without fee. The maintainer reserves the right to include your changes in the official version of Vim. What the maintainer will do with your changes and under what license they will be distributed is negotiable. If there has been no negotiation then this license, or a later version, also applies to your changes. The current maintainer is Bram Moolenaar <Bram@vim.org>. If this changes it will be announced in appropriate places (most likely vim.sf.net, www.vim.org and/or comp.editors). When it is completely impossible to contact the maintainer, the obligation to send him your changes ceases. Once the maintainer has confirmed that he has received your changes they will not have to be sent again.
|
||||
|
||||
b) If you have received a modified Vim that was distributed as mentioned under a) you are allowed to further distribute it unmodified, as mentioned at I). If you make additional changes the text under a) applies to those changes.
|
||||
|
||||
c) Provide all the changes, including source code, with every copy of the modified Vim you distribute. This may be done in the form of a context diff. You can choose what license to use for new code you add. The changes and their license must not restrict others from making their own changes to the official version of Vim.
|
||||
|
||||
d) When you have a modified Vim which includes changes as mentioned under c), you can distribute it without the source code for the changes if the following three conditions are met:
|
||||
- The license that applies to the changes permits you to distribute the changes to the Vim maintainer without fee or restriction, and permits the Vim maintainer to include the changes in the official version of Vim without fee or restriction.
|
||||
- You keep the changes for at least three years after last distributing the corresponding modified Vim. When the maintainer or someone who you distributed the modified Vim to asks you (in any way) for the changes within this period, you must make them available to him.
|
||||
- You clearly describe in the distribution how to contact you. This contact information must remain valid for at least three years after last distributing the corresponding modified Vim, or as long as possible.
|
||||
|
||||
e) When the GNU General Public License (GPL) applies to the changes, you can distribute the modified Vim under the GNU GPL version 2 or any later version.
|
||||
|
||||
3) A message must be added, at least in the output of the ":version" command and in the intro screen, such that the user of the modified Vim is able to see that it was modified. When distributing as mentioned under 2)e) adding the message is only required for as far as this does not conflict with the license used for the changes.
|
||||
|
||||
4) The contact information as required under 2)a) and 2)d) must not be removed or changed, except that the person himself can make corrections.
|
||||
|
||||
III) If you distribute a modified version of Vim, you are encouraged to use the Vim license for your changes and make them available to the maintainer, including the source code. The preferred way to do this is by e-mail or by uploading the files to a server and e-mailing the URL. If the number of changes is small (e.g., a modified Makefile) e-mailing a context diff will do. The e-mail address to be used is <maintainer@vim.org>
|
||||
|
||||
IV) It is not allowed to remove this license from the distribution of the Vim sources, parts of it or from a modified version. You may use this license for previous Vim releases instead of the license that they came with, at your option.
|
||||
2900
dot_vim/plugged/ctrlp.vim/autoload/ctrlp.vim
Normal file
2900
dot_vim/plugged/ctrlp.vim/autoload/ctrlp.vim
Normal file
File diff suppressed because it is too large
Load Diff
173
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/autoignore.vim
Normal file
173
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/autoignore.vim
Normal file
@@ -0,0 +1,173 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/autoignore.vim
|
||||
" Description: Auto-ignore Extension
|
||||
" Author: Ludovic Chabant <github.com/ludovicchabant>
|
||||
" =============================================================================
|
||||
|
||||
|
||||
" Global Settings {{{
|
||||
|
||||
if exists('g:ctrlp_autoignore_loaded') && g:ctrlp_autoignore_loaded
|
||||
\ && !g:ctrlp_autoignore_debug
|
||||
finish
|
||||
endif
|
||||
let g:ctrlp_autoignore_loaded = 1
|
||||
|
||||
if !exists('g:ctrlp_autoignore_debug')
|
||||
let g:ctrlp_autoignore_debug = 0
|
||||
endif
|
||||
|
||||
if !exists('g:ctrlp_autoignore_trace')
|
||||
let g:ctrlp_autoignore_trace = 0
|
||||
endif
|
||||
|
||||
" }}}
|
||||
|
||||
" Initialization {{{
|
||||
|
||||
if !exists('g:ctrlp_custom_ignore')
|
||||
let g:ctrlp_custom_ignore = {}
|
||||
endif
|
||||
let g:ctrlp_custom_ignore['func'] = 'ctrlp#autoignore#ignore'
|
||||
let g:ctrlp_custom_ignore['func-init'] = 'ctrlp#autoignore#ignore_init'
|
||||
let g:ctrlp_custom_ignore['func-close'] = 'ctrlp#autoignore#ignore_close'
|
||||
|
||||
if !exists('g:ctrlp_root_markers')
|
||||
let g:ctrlp_root_markers = []
|
||||
endif
|
||||
call add(g:ctrlp_root_markers, '.ctrlpignore')
|
||||
|
||||
" }}}
|
||||
|
||||
" Internals {{{
|
||||
|
||||
function! s:trace(message) abort
|
||||
if g:ctrlp_autoignore_trace
|
||||
echom "ctrlp_autoignore: " . a:message
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let s:proj_cache = {}
|
||||
let s:active_cwd = ''
|
||||
let s:active_cwd_len = 0
|
||||
let s:active_patterns = []
|
||||
let s:changed_wildignore = 0
|
||||
let s:prev_wildignore = ''
|
||||
|
||||
function! s:load_project_patterns(root_dir) abort
|
||||
let l:ign_path = a:root_dir . '/.ctrlpignore'
|
||||
if !filereadable(l:ign_path)
|
||||
call s:trace("No pattern file at: " . l:ign_path)
|
||||
return []
|
||||
endif
|
||||
let l:cursyntax = 'regexp'
|
||||
let l:knownsyntaxes = ['regexp', 'wildignore']
|
||||
let l:patterns = []
|
||||
let l:lines = readfile(l:ign_path)
|
||||
for line in l:lines
|
||||
" Comment line?
|
||||
if match(line, '\v^\s*$') >= 0 || match(line, '\v^\s*#') >= 0
|
||||
continue
|
||||
endif
|
||||
" Syntax change?
|
||||
let l:matches = matchlist(line, '\v^syntax:\s?(\w+)\s*$')
|
||||
if len(l:matches) > 0
|
||||
let l:cursyntax = l:matches[1]
|
||||
if index(l:knownsyntaxes, l:cursyntax) < 0
|
||||
echoerr "ctrlp_autoignore: Unknown syntax '".l:cursyntax."' in: ".l:ign_path
|
||||
endif
|
||||
continue
|
||||
endif
|
||||
" Patterns!
|
||||
let l:matches = matchlist(line, '\v^((dir|file|link)\:)?(.*)')
|
||||
let l:mtype = l:matches[2]
|
||||
let l:mpat = l:matches[3]
|
||||
call add(l:patterns, {'syn': l:cursyntax, 'type': l:mtype, 'pat': l:mpat})
|
||||
endfor
|
||||
call s:trace("Loaded " . len(l:patterns) . " patterns from: " . l:ign_path)
|
||||
return l:patterns
|
||||
endfunction
|
||||
|
||||
function! s:get_project_patterns(root_dir) abort
|
||||
let l:ign_path = a:root_dir . '/.ctrlpignore'
|
||||
let l:ign_mtime = getftime(l:ign_path)
|
||||
let l:patterns = get(s:proj_cache, a:root_dir)
|
||||
if type(l:patterns) == type({})
|
||||
" Check that these patterns are still valid.
|
||||
if l:ign_mtime < 0
|
||||
" File got deleted! :(
|
||||
let l:patterns['pats'] = []
|
||||
return l:patterns['pats']
|
||||
elseif l:ign_mtime <= l:patterns['mtime']
|
||||
" File hasn't changed! :)
|
||||
return l:patterns['pats']
|
||||
endif
|
||||
endif
|
||||
|
||||
call s:trace("Loading patterns for project: " . a:root_dir)
|
||||
let l:loaded = s:load_project_patterns(a:root_dir)
|
||||
let s:proj_cache[a:root_dir] = {
|
||||
\'mtime': localtime(),
|
||||
\'pats': l:loaded}
|
||||
return l:loaded
|
||||
endfunction
|
||||
|
||||
" The custom ignore function that CtrlP will be using in addition to
|
||||
" normal pattern-based matching.
|
||||
function! ctrlp#autoignore#ignore(item, type) abort
|
||||
let l:cnv_item = tr(strpart(a:item, s:active_cwd_len), "\\", "/")
|
||||
for pat in s:active_patterns
|
||||
if pat['syn'] != 'regexp'
|
||||
continue
|
||||
endif
|
||||
if pat['type'] == '' || pat['type'] == a:type
|
||||
if match(l:cnv_item, pat['pat']) >= 0
|
||||
call s:trace("Ignoring ".l:cnv_item." because of ".pat['pat'])
|
||||
return 1
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! ctrlp#autoignore#ignore_init() abort
|
||||
let l:root = getcwd()
|
||||
let s:active_cwd = l:root
|
||||
" len+1 is for including the next separator after the root.
|
||||
let s:active_cwd_len = len(l:root) + 1
|
||||
let s:active_patterns = s:get_project_patterns(l:root)
|
||||
call s:trace("Got ".len(s:active_patterns)." patterns for ".l:root)
|
||||
|
||||
let s:changed_wildignore = 0
|
||||
let s:prev_wildignore = &wildignore
|
||||
for pat in s:active_patterns
|
||||
if pat['syn'] == 'wildignore'
|
||||
execute 'set wildignore+='.pat['pat']
|
||||
let s:changed_wildignore = 1
|
||||
endif
|
||||
endfor
|
||||
if s:changed_wildignore
|
||||
call s:trace("Set wildignore to ".&wildignore)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! ctrlp#autoignore#ignore_close() abort
|
||||
if s:changed_wildignore
|
||||
execute 'set wildignore='.s:prev_wildignore
|
||||
let s:prev_wildignore = ''
|
||||
call s:trace("Set wildignore back to ".&wildignore)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" List patterns for a given project's root.
|
||||
function! ctrlp#autoignore#get_patterns(root_dir) abort
|
||||
let l:patterns = s:get_project_patterns(a:root_dir)
|
||||
for pat in l:patterns
|
||||
let l:prefix = pat['type'] == '' ? '(all)' : pat['type']
|
||||
echom l:prefix . ':' . pat['pat']
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
147
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/bookmarkdir.vim
Normal file
147
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/bookmarkdir.vim
Normal file
@@ -0,0 +1,147 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/bookmarkdir.vim
|
||||
" Description: Bookmarked directories extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_bookmarkdir') && g:loaded_ctrlp_bookmarkdir
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_bookmarkdir = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#bookmarkdir#init()',
|
||||
\ 'accept': 'ctrlp#bookmarkdir#accept',
|
||||
\ 'lname': 'bookmarked dirs',
|
||||
\ 'sname': 'bkd',
|
||||
\ 'type': 'tabs',
|
||||
\ 'opmul': 1,
|
||||
\ 'nolim': 1,
|
||||
\ 'wipe': 'ctrlp#bookmarkdir#remove',
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
" Utilities {{{1
|
||||
fu! s:getinput(str, ...)
|
||||
echoh Identifier
|
||||
cal inputsave()
|
||||
let input = call('input', a:0 ? [a:str] + a:000 : [a:str])
|
||||
cal inputrestore()
|
||||
echoh None
|
||||
retu input
|
||||
endf
|
||||
|
||||
fu! s:cachefile()
|
||||
if !exists('s:cadir') || !exists('s:cafile')
|
||||
let s:cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'bkd'
|
||||
let s:cafile = s:cadir.ctrlp#utils#lash().'cache.txt'
|
||||
en
|
||||
retu s:cafile
|
||||
endf
|
||||
|
||||
fu! s:writecache(lines)
|
||||
cal ctrlp#utils#writecache(a:lines, s:cadir, s:cafile)
|
||||
endf
|
||||
|
||||
fu! s:getbookmarks()
|
||||
retu ctrlp#utils#readfile(s:cachefile())
|
||||
endf
|
||||
|
||||
fu! s:savebookmark(name, cwd)
|
||||
let cwds = exists('+ssl') ? [tr(a:cwd, '\', '/'), tr(a:cwd, '/', '\')] : [a:cwd]
|
||||
let entries = filter(s:getbookmarks(), 'index(cwds, s:parts(v:val)[1]) < 0')
|
||||
cal s:writecache(insert(entries, a:name.' '.a:cwd))
|
||||
endf
|
||||
|
||||
fu! s:setentries()
|
||||
let time = getftime(s:cachefile())
|
||||
if !( exists('s:bookmarks') && time == s:bookmarks[0] )
|
||||
let s:bookmarks = [time, s:getbookmarks()]
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:parts(str)
|
||||
let mlist = matchlist(a:str, '\v([^\t]+)\t(.*)$')
|
||||
retu mlist != [] ? mlist[1:2] : ['', '']
|
||||
endf
|
||||
|
||||
fu! s:process(entries, type)
|
||||
retu map(a:entries, 's:modify(v:val, a:type)')
|
||||
endf
|
||||
|
||||
fu! s:modify(entry, type)
|
||||
let [name, dir] = s:parts(a:entry)
|
||||
let dir = fnamemodify(dir, a:type)
|
||||
retu name.' '.( dir == '' ? '.' : dir )
|
||||
endf
|
||||
|
||||
fu! s:msg(name, cwd)
|
||||
redr
|
||||
echoh Identifier | echon 'Bookmarked ' | echoh Constant
|
||||
echon a:name.' ' | echoh Directory | echon a:cwd
|
||||
echoh None
|
||||
endf
|
||||
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPBookmark', 'Identifier')
|
||||
cal ctrlp#hicheck('CtrlPTabExtra', 'Comment')
|
||||
sy match CtrlPBookmark '^> [^\t]\+' contains=CtrlPLinePre
|
||||
sy match CtrlPTabExtra '\zs\t.*\ze$'
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#bookmarkdir#init()
|
||||
cal s:setentries()
|
||||
cal s:syntax()
|
||||
retu s:process(copy(s:bookmarks[1]), ':.')
|
||||
endf
|
||||
|
||||
fu! ctrlp#bookmarkdir#accept(mode, str)
|
||||
let parts = s:parts(s:modify(a:str, ':p'))
|
||||
cal call('s:savebookmark', parts)
|
||||
if a:mode =~ 't\|v\|h'
|
||||
cal ctrlp#exit()
|
||||
en
|
||||
cal ctrlp#setdir(parts[1], a:mode =~ 't\|h' ? 'chd!' : 'lc!')
|
||||
if a:mode == 'e'
|
||||
cal ctrlp#switchtype(0)
|
||||
cal ctrlp#recordhist()
|
||||
cal ctrlp#prtclear()
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#bookmarkdir#add(bang, dir, ...)
|
||||
let ctrlp_tilde_homedir = get(g:, 'ctrlp_tilde_homedir', 0)
|
||||
let cwd = fnamemodify(getcwd(), ctrlp_tilde_homedir ? ':p:~' : ':p')
|
||||
let dir = fnamemodify(a:dir, ctrlp_tilde_homedir ? ':p:~' : ':p')
|
||||
if a:bang == '!'
|
||||
let cwd = dir != '' ? dir : cwd
|
||||
let name = a:0 && a:1 != '' ? a:1 : cwd
|
||||
el
|
||||
let str = 'Directory to bookmark: '
|
||||
let cwd = dir != '' ? dir : s:getinput(str, cwd, 'dir')
|
||||
if cwd == '' | retu | en
|
||||
let name = a:0 && a:1 != '' ? a:1 : s:getinput('Bookmark as: ', cwd)
|
||||
if name == '' | retu | en
|
||||
en
|
||||
let name = tr(name, ' ', ' ')
|
||||
cal s:savebookmark(name, cwd)
|
||||
cal s:msg(name, cwd)
|
||||
endf
|
||||
|
||||
fu! ctrlp#bookmarkdir#remove(entries)
|
||||
cal s:process(a:entries, ':p')
|
||||
cal s:writecache(a:entries == [] ? [] :
|
||||
\ filter(s:getbookmarks(), 'index(a:entries, v:val) < 0'))
|
||||
cal s:setentries()
|
||||
retu s:process(copy(s:bookmarks[1]), ':.')
|
||||
endf
|
||||
|
||||
fu! ctrlp#bookmarkdir#id()
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
281
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/buffertag.vim
Normal file
281
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/buffertag.vim
Normal file
@@ -0,0 +1,281 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/buffertag.vim
|
||||
" Description: Buffer Tag extension
|
||||
" Maintainer: Kien Nguyen <github.com/kien>
|
||||
" Credits: Much of the code was taken from tagbar.vim by Jan Larres, plus
|
||||
" a few lines from taglist.vim by Yegappan Lakshmanan and from
|
||||
" buffertag.vim by Takeshi Nishida.
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_buftag') && g:loaded_ctrlp_buftag
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_buftag = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#buffertag#init(s:crfile)',
|
||||
\ 'accept': 'ctrlp#buffertag#accept',
|
||||
\ 'lname': 'buffer tags',
|
||||
\ 'sname': 'bft',
|
||||
\ 'exit': 'ctrlp#buffertag#exit()',
|
||||
\ 'type': 'tabs',
|
||||
\ 'opts': 'ctrlp#buffertag#opts()',
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
|
||||
let [s:pref, s:opts] = ['g:ctrlp_buftag_', {
|
||||
\ 'systemenc': ['s:enc', &enc],
|
||||
\ 'ctags_bin': ['s:bin', ''],
|
||||
\ 'types': ['s:usr_types', {}],
|
||||
\ }]
|
||||
|
||||
let s:bins = [
|
||||
\ 'ctags-exuberant',
|
||||
\ 'exuberant-ctags',
|
||||
\ 'exctags',
|
||||
\ '/usr/local/bin/ctags',
|
||||
\ '/opt/local/bin/ctags',
|
||||
\ 'ctags',
|
||||
\ 'ctags.exe',
|
||||
\ 'tags',
|
||||
\ ]
|
||||
|
||||
let s:types = {
|
||||
\ 'ant' : '%sant%sant%spt',
|
||||
\ 'asm' : '%sasm%sasm%sdlmt',
|
||||
\ 'aspperl': '%sasp%sasp%sfsv',
|
||||
\ 'aspvbs' : '%sasp%sasp%sfsv',
|
||||
\ 'awk' : '%sawk%sawk%sf',
|
||||
\ 'beta' : '%sbeta%sbeta%sfsv',
|
||||
\ 'c' : '%sc%sc%sdgsutvf',
|
||||
\ 'cpp' : '%sc++%sc++%snvdtcgsuf',
|
||||
\ 'cs' : '%sc#%sc#%sdtncEgsipm',
|
||||
\ 'cobol' : '%scobol%scobol%sdfgpPs',
|
||||
\ 'delphi' : '%spascal%spascal%sfp',
|
||||
\ 'dosbatch': '%sdosbatch%sdosbatch%slv',
|
||||
\ 'eiffel' : '%seiffel%seiffel%scf',
|
||||
\ 'erlang' : '%serlang%serlang%sdrmf',
|
||||
\ 'expect' : '%stcl%stcl%scfp',
|
||||
\ 'fortran': '%sfortran%sfortran%spbceiklmntvfs',
|
||||
\ 'go' : '%sgo%sgo%sfctv',
|
||||
\ 'html' : '%shtml%shtml%saf',
|
||||
\ 'java' : '%sjava%sjava%spcifm',
|
||||
\ 'javascript': '%sjavascript%sjavascript%sf',
|
||||
\ 'lisp' : '%slisp%slisp%sf',
|
||||
\ 'lua' : '%slua%slua%sf',
|
||||
\ 'make' : '%smake%smake%sm',
|
||||
\ 'matlab' : '%smatlab%smatlab%sf',
|
||||
\ 'ocaml' : '%socaml%socaml%scmMvtfCre',
|
||||
\ 'pascal' : '%spascal%spascal%sfp',
|
||||
\ 'perl' : '%sperl%sperl%sclps',
|
||||
\ 'php' : '%sphp%sphp%scdvf',
|
||||
\ 'python' : '%spython%spython%scmf',
|
||||
\ 'rexx' : '%srexx%srexx%ss',
|
||||
\ 'ruby' : '%sruby%sruby%scfFm',
|
||||
\ 'rust' : '%srust%srust%sfTgsmctid',
|
||||
\ 'scheme' : '%sscheme%sscheme%ssf',
|
||||
\ 'sh' : '%ssh%ssh%sf',
|
||||
\ 'csh' : '%ssh%ssh%sf',
|
||||
\ 'zsh' : '%ssh%ssh%sf',
|
||||
\ 'scala' : '%sscala%sscala%sctTmlp',
|
||||
\ 'slang' : '%sslang%sslang%snf',
|
||||
\ 'sml' : '%ssml%ssml%secsrtvf',
|
||||
\ 'sql' : '%ssql%ssql%scFPrstTvfp',
|
||||
\ 'tex' : '%stex%stex%sipcsubPGl',
|
||||
\ 'tcl' : '%stcl%stcl%scfmp',
|
||||
\ 'vera' : '%svera%svera%scdefgmpPtTvx',
|
||||
\ 'verilog': '%sverilog%sverilog%smcPertwpvf',
|
||||
\ 'vhdl' : '%svhdl%svhdl%sPctTrefp',
|
||||
\ 'vim' : '%svim%svim%savf',
|
||||
\ 'yacc' : '%syacc%syacc%sl',
|
||||
\ }
|
||||
|
||||
cal map(s:types, 'printf(v:val, "--language-force=", " --", "-types=")')
|
||||
|
||||
if executable('jsctags')
|
||||
cal extend(s:types, { 'javascript': { 'args': '-f -', 'bin': 'jsctags' } })
|
||||
en
|
||||
|
||||
fu! ctrlp#buffertag#opts()
|
||||
for [ke, va] in items(s:opts)
|
||||
let {va[0]} = exists(s:pref.ke) ? {s:pref.ke} : va[1]
|
||||
endfo
|
||||
" Ctags bin
|
||||
if empty(s:bin)
|
||||
for bin in s:bins | if executable(bin)
|
||||
let s:bin = bin
|
||||
brea
|
||||
en | endfo
|
||||
el
|
||||
let s:bin = expand(s:bin, 1)
|
||||
en
|
||||
" Types
|
||||
cal extend(s:types, s:usr_types)
|
||||
endf
|
||||
" Utilities {{{1
|
||||
fu! s:validfile(fname, ftype)
|
||||
if ( !empty(a:fname) || !empty(a:ftype) ) && filereadable(a:fname)
|
||||
\ && index(keys(s:types), a:ftype) >= 0 | retu 1 | en
|
||||
retu 0
|
||||
endf
|
||||
|
||||
fu! s:exectags(cmd)
|
||||
if exists('+ssl')
|
||||
let [ssl, &ssl] = [&ssl, 0]
|
||||
en
|
||||
if &sh =~ 'cmd\.exe'
|
||||
let [sxq, &sxq, shcf, &shcf] = [&sxq, '"', &shcf, '/s /c']
|
||||
en
|
||||
let output = system(a:cmd)
|
||||
if &sh =~ 'cmd\.exe'
|
||||
let [&sxq, &shcf] = [sxq, shcf]
|
||||
en
|
||||
if exists('+ssl')
|
||||
let &ssl = ssl
|
||||
en
|
||||
retu output
|
||||
endf
|
||||
|
||||
fu! s:exectagsonfile(fname, ftype)
|
||||
let [ags, ft] = ['-f - --sort=no --excmd=pattern --fields=nKs --extra= --file-scope=yes ', a:ftype]
|
||||
if type(s:types[ft]) == 1
|
||||
let ags .= s:types[ft]
|
||||
let bin = s:bin
|
||||
elsei type(s:types[ft]) == 4
|
||||
let ags = s:types[ft]['args']
|
||||
let bin = expand(s:types[ft]['bin'], 1)
|
||||
en
|
||||
if empty(bin) | retu '' | en
|
||||
let cmd = s:esctagscmd(bin, ags, a:fname)
|
||||
if empty(cmd) | retu '' | en
|
||||
let output = s:exectags(cmd)
|
||||
if v:shell_error || output =~ 'Warning: cannot open' | retu '' | en
|
||||
retu output
|
||||
endf
|
||||
|
||||
fu! s:esctagscmd(bin, args, ...)
|
||||
if exists('+ssl')
|
||||
let [ssl, &ssl] = [&ssl, 0]
|
||||
en
|
||||
let fname = a:0 ? shellescape(a:1) : ''
|
||||
if (has('win32') || has('win64'))
|
||||
let cmd = a:bin.' '.a:args.' '.fname
|
||||
else
|
||||
let cmd = shellescape(a:bin).' '.a:args.' '.fname
|
||||
endif
|
||||
if &sh =~ 'cmd\.exe'
|
||||
let cmd = substitute(cmd, '[&()@^<>|]', '^\0', 'g')
|
||||
en
|
||||
if exists('+ssl')
|
||||
let &ssl = ssl
|
||||
en
|
||||
if has('iconv')
|
||||
let last = s:enc != &enc ? s:enc : !empty( $LANG ) ? $LANG : &enc
|
||||
let cmd = iconv(cmd, &enc, last)
|
||||
en
|
||||
retu cmd
|
||||
endf
|
||||
|
||||
fu! s:process(fname, ftype)
|
||||
if !s:validfile(a:fname, a:ftype) | retu [] | endif
|
||||
let ftime = getftime(a:fname)
|
||||
if has_key(g:ctrlp_buftags, a:fname)
|
||||
\ && g:ctrlp_buftags[a:fname]['time'] >= ftime
|
||||
let lines = g:ctrlp_buftags[a:fname]['lines']
|
||||
el
|
||||
let data = s:exectagsonfile(a:fname, a:ftype)
|
||||
let [raw, lines] = [split(data, '\n\+'), []]
|
||||
for line in raw
|
||||
if line !~# '^!_TAG_' && len(split(line, ';"')) == 2
|
||||
let parsed_line = s:parseline(line)
|
||||
if parsed_line != ''
|
||||
cal add(lines, parsed_line)
|
||||
en
|
||||
en
|
||||
endfo
|
||||
let cache = { a:fname : { 'time': ftime, 'lines': lines } }
|
||||
cal extend(g:ctrlp_buftags, cache)
|
||||
en
|
||||
retu lines
|
||||
endf
|
||||
|
||||
fu! s:parseline(line)
|
||||
let vals = matchlist(a:line,
|
||||
\ '\v^([^\t]+)\t(.+)\t[?/]\^?(.{-1,})\$?[?/]\;\"\t(.+)\tline(no)?\:(\d+)\t?([^\t]*)')
|
||||
if vals == [] | retu '' | en
|
||||
let [bufnr, bufname] = [bufnr('^'.vals[2].'$'), fnamemodify(vals[2], ':p:t')]
|
||||
if len(vals) > 7 && vals[7] != ''
|
||||
retu vals[1].' '.vals[4].'|'.bufnr.':'.bufname.'|'.vals[6].'|'.vals[7].'| '.vals[3]
|
||||
else
|
||||
retu vals[1].' '.vals[4].'|'.bufnr.':'.bufname.'|'.vals[6].'| '.vals[3]
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPTagKind', 'Title')
|
||||
cal ctrlp#hicheck('CtrlPBufName', 'Directory')
|
||||
cal ctrlp#hicheck('CtrlPTabExtra', 'Comment')
|
||||
sy match CtrlPTagKind '\zs[^\t|]\+\ze|\d\+:[^|]\+|\d\+|'
|
||||
sy match CtrlPBufName '|\d\+:\zs[^|]\+\ze|\d\+|'
|
||||
sy match CtrlPTabExtra '\zs\t.*\ze$' contains=CtrlPBufName,CtrlPTagKind
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:chknearby(pat)
|
||||
if match(getline('.'), a:pat) < 0
|
||||
let [int, forw, maxl] = [1, 1, line('$')]
|
||||
wh !search(a:pat, 'W'.( forw ? '' : 'b' ))
|
||||
if !forw
|
||||
if int > maxl | brea | en
|
||||
let int += int
|
||||
en
|
||||
let forw = !forw
|
||||
endw
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#buffertag#init(fname)
|
||||
let bufs = exists('s:btmode') && s:btmode
|
||||
\ ? filter(ctrlp#buffers(), 'filereadable(v:val)')
|
||||
\ : [exists('s:bufname') ? s:bufname : a:fname]
|
||||
let lines = []
|
||||
for each in bufs
|
||||
let bname = fnamemodify(each, ':p')
|
||||
let tftype = get(split(getbufvar('^'.bname.'$', '&ft'), '\.'), 0, '')
|
||||
cal extend(lines, s:process(bname, tftype))
|
||||
endfo
|
||||
cal s:syntax()
|
||||
retu lines
|
||||
endf
|
||||
|
||||
fu! ctrlp#buffertag#accept(mode, str)
|
||||
let vals = matchlist(a:str,
|
||||
\ '\v^[^\t]+\t+[^\t|]+\|(\d+)\:[^\t|]+\|(\d+)%(\|[^\t|]+)?\|\s(.+)$')
|
||||
let bufnr = str2nr(get(vals, 1))
|
||||
if bufnr
|
||||
cal ctrlp#acceptfile(a:mode, bufnr)
|
||||
exe 'norm!' str2nr(get(vals, 2, line('.'))).'G'
|
||||
cal s:chknearby('\V\C'.get(vals, 3, ''))
|
||||
sil! norm! zvzz
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#buffertag#cmd(mode, ...)
|
||||
let s:btmode = a:mode
|
||||
if a:0 && !empty(a:1)
|
||||
let s:btmode = 0
|
||||
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||
let s:bufname = fnamemodify(bname, ':p')
|
||||
en
|
||||
retu s:id
|
||||
endf
|
||||
|
||||
fu! ctrlp#buffertag#exit()
|
||||
unl! s:btmode s:bufname
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
98
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/changes.vim
Normal file
98
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/changes.vim
Normal file
@@ -0,0 +1,98 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/changes.vim
|
||||
" Description: Change list extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_changes') && g:loaded_ctrlp_changes
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_changes = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#changes#init(s:bufnr, s:crbufnr)',
|
||||
\ 'accept': 'ctrlp#changes#accept',
|
||||
\ 'lname': 'changes',
|
||||
\ 'sname': 'chs',
|
||||
\ 'exit': 'ctrlp#changes#exit()',
|
||||
\ 'type': 'tabe',
|
||||
\ 'sort': 0,
|
||||
\ 'nolim': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
" Utilities {{{1
|
||||
fu! s:changelist(bufnr)
|
||||
sil! exe 'noa hid b' a:bufnr
|
||||
redi => result
|
||||
sil! changes
|
||||
redi END
|
||||
retu map(split(result, "\n")[1:], 'tr(v:val, " ", " ")')
|
||||
endf
|
||||
|
||||
fu! s:process(clines, ...)
|
||||
let [clines, evas] = [[], []]
|
||||
for each in a:clines
|
||||
let parts = matchlist(each, '\v^.\s*\d+\s+(\d+)\s+(\d+)\s(.*)$')
|
||||
if !empty(parts)
|
||||
if parts[3] == '' | let parts[3] = ' ' | en
|
||||
cal add(clines, parts[3].' |'.a:1.':'.a:2.'|'.parts[1].':'.parts[2].'|')
|
||||
en
|
||||
endfo
|
||||
retu reverse(filter(clines, 'count(clines, v:val) == 1'))
|
||||
endf
|
||||
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPBufName', 'Directory')
|
||||
cal ctrlp#hicheck('CtrlPTabExtra', 'Comment')
|
||||
sy match CtrlPBufName '\t|\d\+:\zs[^|]\+\ze|\d\+:\d\+|$'
|
||||
sy match CtrlPTabExtra '\zs\t.*\ze$' contains=CtrlPBufName
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#changes#init(original_bufnr, bufnr)
|
||||
let bufnr = exists('s:bufnr') ? s:bufnr : a:bufnr
|
||||
let bufs = exists('s:clmode') && s:clmode ? ctrlp#buffers('id') : [bufnr]
|
||||
cal filter(bufs, 'v:val > 0')
|
||||
let [swb, &swb] = [&swb, '']
|
||||
let lines = []
|
||||
for each in bufs
|
||||
let bname = bufname(each)
|
||||
let fnamet = fnamemodify(bname == '' ? '[No Name]' : bname, ':t')
|
||||
cal extend(lines, s:process(s:changelist(each), each, fnamet))
|
||||
endfo
|
||||
sil! exe 'noa hid b' a:original_bufnr
|
||||
let &swb = swb
|
||||
cal ctrlp#syntax()
|
||||
cal s:syntax()
|
||||
retu lines
|
||||
endf
|
||||
|
||||
fu! ctrlp#changes#accept(mode, str)
|
||||
let info = matchlist(a:str, '\t|\(\d\+\):[^|]\+|\(\d\+\):\(\d\+\)|$')
|
||||
let bufnr = str2nr(get(info, 1))
|
||||
if bufnr
|
||||
cal ctrlp#acceptfile(a:mode, bufnr)
|
||||
cal cursor(get(info, 2), get(info, 3))
|
||||
sil! norm! zvzz
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#changes#cmd(mode, ...)
|
||||
let s:clmode = a:mode
|
||||
if a:0 && !empty(a:1)
|
||||
let s:clmode = 0
|
||||
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
|
||||
en
|
||||
retu s:id
|
||||
endf
|
||||
|
||||
fu! ctrlp#changes#exit()
|
||||
unl! s:clmode s:bufnr
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
95
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/dir.vim
Normal file
95
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/dir.vim
Normal file
@@ -0,0 +1,95 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/dir.vim
|
||||
" Description: Directory extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_dir') && g:loaded_ctrlp_dir
|
||||
fini
|
||||
en
|
||||
let [g:loaded_ctrlp_dir, g:ctrlp_newdir] = [1, 0]
|
||||
|
||||
let s:ars = ['s:maxdepth', 's:maxfiles', 's:compare_lim', 's:glob', 's:caching']
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#dir#init('.join(s:ars, ', ').')',
|
||||
\ 'accept': 'ctrlp#dir#accept',
|
||||
\ 'lname': 'dirs',
|
||||
\ 'sname': 'dir',
|
||||
\ 'type': 'path',
|
||||
\ 'specinput': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
|
||||
let s:dircounts = {}
|
||||
" Utilities {{{1
|
||||
fu! s:globdirs(dirs, depth)
|
||||
let entries = split(globpath(a:dirs, s:glob), "\n")
|
||||
let [dirs, depth] = [ctrlp#dirnfile(entries)[0], a:depth + 1]
|
||||
cal extend(g:ctrlp_alldirs, dirs)
|
||||
let nr = len(g:ctrlp_alldirs)
|
||||
if !empty(dirs) && !s:max(nr, s:maxfiles) && depth <= s:maxdepth
|
||||
sil! cal ctrlp#progress(nr)
|
||||
cal map(dirs, 'ctrlp#utils#fnesc(v:val, "g", ",")')
|
||||
cal s:globdirs(join(dirs, ','), depth)
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:max(len, max)
|
||||
retu a:max && a:len > a:max
|
||||
endf
|
||||
|
||||
fu! s:nocache()
|
||||
retu !s:caching || ( s:caching > 1 && get(s:dircounts, s:cwd) < s:caching )
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#dir#init(...)
|
||||
let s:cwd = getcwd()
|
||||
for each in range(len(s:ars))
|
||||
let {s:ars[each]} = a:{each + 1}
|
||||
endfo
|
||||
let cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'dir'
|
||||
let cafile = cadir.ctrlp#utils#lash().ctrlp#utils#cachefile('dir')
|
||||
if g:ctrlp_newdir || s:nocache() || !filereadable(cafile)
|
||||
let [s:initcwd, g:ctrlp_alldirs] = [s:cwd, []]
|
||||
if !ctrlp#igncwd(s:cwd)
|
||||
cal s:globdirs(ctrlp#utils#fnesc(s:cwd, 'g', ','), 0)
|
||||
en
|
||||
cal ctrlp#rmbasedir(g:ctrlp_alldirs)
|
||||
if len(g:ctrlp_alldirs) <= s:compare_lim
|
||||
cal sort(g:ctrlp_alldirs, 'ctrlp#complen')
|
||||
en
|
||||
cal ctrlp#utils#writecache(g:ctrlp_alldirs, cadir, cafile)
|
||||
let g:ctrlp_newdir = 0
|
||||
el
|
||||
if !( exists('s:initcwd') && s:initcwd == s:cwd )
|
||||
let s:initcwd = s:cwd
|
||||
let g:ctrlp_alldirs = ctrlp#utils#readfile(cafile)
|
||||
en
|
||||
en
|
||||
cal extend(s:dircounts, { s:cwd : len(g:ctrlp_alldirs) })
|
||||
retu g:ctrlp_alldirs
|
||||
endf
|
||||
|
||||
fu! ctrlp#dir#accept(mode, str)
|
||||
let path = a:mode == 'h' ? getcwd() : s:cwd.ctrlp#call('s:lash', s:cwd).a:str
|
||||
if a:mode =~ 't\|v\|h'
|
||||
cal ctrlp#exit()
|
||||
en
|
||||
cal ctrlp#setdir(path, a:mode =~ 't\|h' ? 'chd!' : 'lc!')
|
||||
if a:mode == 'e'
|
||||
sil! cal ctrlp#statusline()
|
||||
cal ctrlp#setlines(s:id)
|
||||
cal ctrlp#recordhist()
|
||||
cal ctrlp#prtclear()
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#dir#id()
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
81
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/line.vim
Normal file
81
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/line.vim
Normal file
@@ -0,0 +1,81 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/line.vim
|
||||
" Description: Line extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_line') && g:loaded_ctrlp_line
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_line = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#line#init(s:crbufnr)',
|
||||
\ 'accept': 'ctrlp#line#accept',
|
||||
\ 'act_farg' : 'dict',
|
||||
\ 'lname': 'lines',
|
||||
\ 'sname': 'lns',
|
||||
\ 'type': 'tabe',
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
" Utilities {{{1
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPBufName', 'Directory')
|
||||
cal ctrlp#hicheck('CtrlPTabExtra', 'Comment')
|
||||
sy match CtrlPBufName '\t|\zs[^|]\+\ze|\d\+:\d\+|$'
|
||||
sy match CtrlPTabExtra '\zs\t.*\ze$' contains=CtrlPBufName
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#line#init(bufnr)
|
||||
let [lines, bufnr] = [[], exists('s:bufnr') ? s:bufnr : a:bufnr]
|
||||
let bufs = exists('s:lnmode') && !empty(s:lnmode) ? ctrlp#buffers('id') : [bufnr]
|
||||
for bufnr in bufs
|
||||
let [lfb, bufn] = [getbufline(bufnr, 1, '$'), bufname(bufnr)]
|
||||
if lfb == [] && bufn != ''
|
||||
let lfb = ctrlp#utils#readfile(fnamemodify(bufn, ':p'))
|
||||
en
|
||||
cal map(lfb, 'tr(v:val, '' '', '' '')')
|
||||
let [linenr, len_lfb] = [1, len(lfb)]
|
||||
let buft = bufn == '' ? '[No Name]' : fnamemodify(bufn, ':t')
|
||||
wh linenr <= len_lfb
|
||||
let lfb[linenr - 1] .= ' |'.buft.'|'.bufnr.':'.linenr.'|'
|
||||
let linenr += 1
|
||||
endw
|
||||
cal extend(lines, filter(lfb, 'v:val !~ ''^\s*\t|[^|]\+|\d\+:\d\+|$'''))
|
||||
endfo
|
||||
cal s:syntax()
|
||||
retu lines
|
||||
endf
|
||||
|
||||
fu! ctrlp#line#accept(dict)
|
||||
let mode = a:dict['action']
|
||||
let str = a:dict['line']
|
||||
let input = a:dict['input']
|
||||
let info = matchlist(str, '\t|[^|]\+|\(\d\+\):\(\d\+\)|$')
|
||||
let bufnr = str2nr(get(info, 1))
|
||||
if bufnr
|
||||
cal ctrlp#acceptfile(mode, bufnr, get(info, 2))
|
||||
if !empty(input)
|
||||
let @/ = input
|
||||
call search(input, 'c')
|
||||
call histadd("search", input)
|
||||
en
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#line#cmd(mode, ...)
|
||||
let s:lnmode = a:mode
|
||||
if a:0 && !empty(a:1)
|
||||
let s:lnmode = 0
|
||||
let bname = a:1 =~# '^%$\|^#\d*$' ? expand(a:1) : a:1
|
||||
let s:bufnr = bufnr('^'.fnamemodify(bname, ':p').'$')
|
||||
en
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
88
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/mixed.vim
Normal file
88
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/mixed.vim
Normal file
@@ -0,0 +1,88 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/mixed.vim
|
||||
" Description: Mixing Files + MRU + Buffers
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_mixed') && g:loaded_ctrlp_mixed
|
||||
fini
|
||||
en
|
||||
let [g:loaded_ctrlp_mixed, g:ctrlp_newmix] = [1, 0]
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#mixed#init(s:compare_lim)',
|
||||
\ 'accept': 'ctrlp#acceptfile',
|
||||
\ 'lname': 'fil + mru + buf',
|
||||
\ 'sname': 'mix',
|
||||
\ 'type': 'path',
|
||||
\ 'opmul': 1,
|
||||
\ 'specinput': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
" Utilities {{{1
|
||||
fu! s:newcache(cwd)
|
||||
if g:ctrlp_newmix || !has_key(g:ctrlp_allmixes, 'data') | retu 1 | en
|
||||
retu g:ctrlp_allmixes['cwd'] != a:cwd
|
||||
\ || g:ctrlp_allmixes['filtime'] < getftime(ctrlp#utils#cachefile())
|
||||
\ || g:ctrlp_allmixes['mrutime'] < getftime(ctrlp#mrufiles#cachefile())
|
||||
\ || g:ctrlp_allmixes['bufs'] < len(ctrlp#mrufiles#bufs())
|
||||
endf
|
||||
|
||||
fu! s:getnewmix(cwd, clim)
|
||||
if g:ctrlp_newmix
|
||||
cal ctrlp#mrufiles#refresh('raw')
|
||||
let g:ctrlp_newcache = 1
|
||||
en
|
||||
let g:ctrlp_lines = copy(ctrlp#files())
|
||||
cal ctrlp#progress('Mixing...')
|
||||
let mrufs = copy(ctrlp#mrufiles#list('raw'))
|
||||
if exists('+ssl') && &ssl
|
||||
cal map(mrufs, 'tr(v:val, "\\", "/")')
|
||||
en
|
||||
let allbufs = map(ctrlp#buffers(), 'fnamemodify(v:val, ":p")')
|
||||
let [bufs, ubufs] = [[], []]
|
||||
for each in allbufs
|
||||
cal add(filereadable(each) ? bufs : ubufs, each)
|
||||
endfo
|
||||
let mrufs = bufs + filter(mrufs, 'index(bufs, v:val) < 0')
|
||||
if len(mrufs) > len(g:ctrlp_lines)
|
||||
cal filter(mrufs, 'stridx(v:val, a:cwd)')
|
||||
el
|
||||
let cwd_mrufs = filter(copy(mrufs), '!stridx(v:val, a:cwd)')
|
||||
let cwd_mrufs = ctrlp#rmbasedir(cwd_mrufs)
|
||||
for each in cwd_mrufs
|
||||
let id = index(g:ctrlp_lines, each)
|
||||
if id >= 0 | cal remove(g:ctrlp_lines, id) | en
|
||||
endfo
|
||||
en
|
||||
let mrufs += ubufs
|
||||
cal map(mrufs, 'fnamemodify(v:val, ":.")')
|
||||
let g:ctrlp_lines = len(mrufs) > len(g:ctrlp_lines)
|
||||
\ ? g:ctrlp_lines + mrufs : mrufs + g:ctrlp_lines
|
||||
if len(g:ctrlp_lines) <= a:clim
|
||||
cal sort(g:ctrlp_lines, 'ctrlp#complen')
|
||||
en
|
||||
let g:ctrlp_allmixes = { 'filtime': getftime(ctrlp#utils#cachefile()),
|
||||
\ 'mrutime': getftime(ctrlp#mrufiles#cachefile()), 'cwd': a:cwd,
|
||||
\ 'bufs': len(ctrlp#mrufiles#bufs()), 'data': g:ctrlp_lines }
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#mixed#init(clim)
|
||||
let cwd = getcwd()
|
||||
if s:newcache(cwd)
|
||||
cal s:getnewmix(cwd, a:clim)
|
||||
el
|
||||
let g:ctrlp_lines = g:ctrlp_allmixes['data']
|
||||
en
|
||||
let g:ctrlp_newmix = 0
|
||||
retu g:ctrlp_lines
|
||||
endf
|
||||
|
||||
fu! ctrlp#mixed#id()
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
158
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/mrufiles.vim
Normal file
158
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/mrufiles.vim
Normal file
@@ -0,0 +1,158 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/mrufiles.vim
|
||||
" Description: Most Recently Used Files extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Static variables {{{1
|
||||
let [s:mrbs, s:mrufs] = [[], []]
|
||||
let s:mruf_map_string = '!stridx(v:val, cwd) ? strpart(v:val, idx) : v:val'
|
||||
|
||||
fu! ctrlp#mrufiles#opts()
|
||||
let [pref, opts] = ['g:ctrlp_mruf_', {
|
||||
\ 'max': ['s:max', 250],
|
||||
\ 'include': ['s:in', ''],
|
||||
\ 'exclude': ['s:ex', ''],
|
||||
\ 'case_sensitive': ['s:cseno', 1],
|
||||
\ 'relative': ['s:re', 0],
|
||||
\ 'save_on_update': ['s:soup', 1],
|
||||
\ 'map_string': ['g:ctrlp_mruf_map_string', s:mruf_map_string],
|
||||
\ }]
|
||||
for [ke, va] in items(opts)
|
||||
let [{va[0]}, {pref.ke}] = [pref.ke, exists(pref.ke) ? {pref.ke} : va[1]]
|
||||
endfo
|
||||
endf
|
||||
cal ctrlp#mrufiles#opts()
|
||||
" Utilities {{{1
|
||||
fu! s:excl(fn)
|
||||
retu !empty({s:ex}) && a:fn =~# {s:ex}
|
||||
endf
|
||||
|
||||
fu! s:mergelists()
|
||||
let diskmrufs = ctrlp#utils#readfile(ctrlp#mrufiles#cachefile())
|
||||
cal filter(diskmrufs, 'index(s:mrufs, v:val) < 0')
|
||||
let mrufs = s:mrufs + diskmrufs
|
||||
retu s:chop(mrufs)
|
||||
endf
|
||||
|
||||
fu! s:chop(mrufs)
|
||||
if len(a:mrufs) > {s:max} | cal remove(a:mrufs, {s:max}, -1) | en
|
||||
retu a:mrufs
|
||||
endf
|
||||
|
||||
fu! s:reformat(mrufs, ...)
|
||||
let cwd = getcwd()
|
||||
let cwd .= cwd !~ '[\/]$' ? ctrlp#utils#lash() : ''
|
||||
if {s:re}
|
||||
let cwd = exists('+ssl') ? tr(cwd, '/', '\') : cwd
|
||||
cal filter(a:mrufs, '!stridx(v:val, cwd)')
|
||||
en
|
||||
if a:0 && a:1 == 'raw' | retu a:mrufs | en
|
||||
let idx = strlen(cwd)
|
||||
if exists('+ssl') && &ssl
|
||||
let cwd = tr(cwd, '\', '/')
|
||||
cal map(a:mrufs, 'tr(v:val, "\\", "/")')
|
||||
en
|
||||
retu map(a:mrufs, g:ctrlp_mruf_map_string)
|
||||
endf
|
||||
|
||||
fu! s:record(bufnr)
|
||||
if s:locked | retu | en
|
||||
let bufnr = a:bufnr + 0
|
||||
let bufname = bufname(bufnr)
|
||||
if bufnr > 0 && !empty(bufname)
|
||||
cal filter(s:mrbs, 'v:val != bufnr')
|
||||
cal insert(s:mrbs, bufnr)
|
||||
cal s:addtomrufs(bufname)
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:addtomrufs(fname)
|
||||
let fn = fnamemodify(a:fname, get(g:, 'ctrlp_tilde_homedir', 0) ? ':p:~' : ':p')
|
||||
let fn = exists('+ssl') ? tr(fn, '/', '\') : fn
|
||||
let abs_fn = fnamemodify(fn,':p')
|
||||
if ( !empty({s:in}) && fn !~# {s:in} ) || ( !empty({s:ex}) && fn =~# {s:ex} )
|
||||
\ || !empty(getbufvar('^' . abs_fn . '$', '&bt')) || !filereadable(abs_fn)
|
||||
retu
|
||||
en
|
||||
let idx = index(s:mrufs, fn, 0, !{s:cseno})
|
||||
if idx
|
||||
cal filter(s:mrufs, 'v:val !='.( {s:cseno} ? '#' : '?' ).' fn')
|
||||
cal insert(s:mrufs, fn)
|
||||
if {s:soup} && idx < 0
|
||||
cal s:savetofile(s:mergelists())
|
||||
en
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:savetofile(mrufs)
|
||||
cal ctrlp#utils#writecache(a:mrufs, s:cadir, s:cafile)
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#mrufiles#refresh(...)
|
||||
let mrufs = s:mergelists()
|
||||
cal filter(mrufs, '!empty(ctrlp#utils#glob(v:val, 1)) && !s:excl(v:val)')
|
||||
if exists('+ssl')
|
||||
cal map(mrufs, 'tr(v:val, "/", "\\")')
|
||||
cal map(s:mrufs, 'tr(v:val, "/", "\\")')
|
||||
let cond = 'count(mrufs, v:val, !{s:cseno}) == 1'
|
||||
cal filter(mrufs, cond)
|
||||
cal filter(s:mrufs, cond)
|
||||
en
|
||||
cal s:savetofile(mrufs)
|
||||
retu a:0 && a:1 == 'raw' ? [] : s:reformat(mrufs)
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#remove(files)
|
||||
let mrufs = []
|
||||
if a:files != []
|
||||
let mrufs = s:mergelists()
|
||||
let cond = 'index(a:files, v:val, 0, !{s:cseno}) < 0'
|
||||
cal filter(mrufs, cond)
|
||||
cal filter(s:mrufs, cond)
|
||||
en
|
||||
cal s:savetofile(mrufs)
|
||||
retu s:reformat(mrufs)
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#add(fn)
|
||||
if !empty(a:fn)
|
||||
cal s:addtomrufs(a:fn)
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#list(...)
|
||||
retu a:0 ? a:1 == 'raw' ? s:reformat(s:mergelists(), a:1) : 0
|
||||
\ : s:reformat(s:mergelists())
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#bufs()
|
||||
retu s:mrbs
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#tgrel()
|
||||
let {s:re} = !{s:re}
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#cachefile()
|
||||
if !exists('s:cadir') || !exists('s:cafile')
|
||||
let s:cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'mru'
|
||||
let s:cafile = s:cadir.ctrlp#utils#lash().'cache.txt'
|
||||
en
|
||||
retu s:cafile
|
||||
endf
|
||||
|
||||
fu! ctrlp#mrufiles#init()
|
||||
if !has('autocmd') | retu | en
|
||||
let s:locked = 0
|
||||
aug CtrlPMRUF
|
||||
au!
|
||||
au BufWinEnter,BufWinLeave,BufWritePost * cal s:record(expand('<abuf>', 1))
|
||||
au QuickFixCmdPre *vimgrep* let s:locked = 1
|
||||
au QuickFixCmdPost *vimgrep* let s:locked = 0
|
||||
au VimLeavePre * cal s:savetofile(s:mergelists())
|
||||
aug END
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
59
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/quickfix.vim
Normal file
59
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/quickfix.vim
Normal file
@@ -0,0 +1,59 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/quickfix.vim
|
||||
" Description: Quickfix extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_quickfix') && g:loaded_ctrlp_quickfix
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_quickfix = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#quickfix#init()',
|
||||
\ 'accept': 'ctrlp#quickfix#accept',
|
||||
\ 'lname': 'quickfix',
|
||||
\ 'sname': 'qfx',
|
||||
\ 'type': 'line',
|
||||
\ 'sort': 0,
|
||||
\ 'nolim': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
|
||||
fu! s:lineout(dict)
|
||||
retu printf('%s|%d:%d| %s', bufname(a:dict['bufnr']), a:dict['lnum'],
|
||||
\ a:dict['col'], matchstr(a:dict['text'], '\s*\zs.*\S'))
|
||||
endf
|
||||
" Utilities {{{1
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPqfLineCol', 'Search')
|
||||
sy match CtrlPqfLineCol '|\zs\d\+:\d\+\ze|'
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#quickfix#init()
|
||||
cal s:syntax()
|
||||
retu map(getqflist(), 's:lineout(v:val)')
|
||||
endf
|
||||
|
||||
fu! ctrlp#quickfix#accept(mode, str)
|
||||
let vals = matchlist(a:str, '^\([^|]\+\ze\)|\(\d\+\):\(\d\+\)|')
|
||||
if vals == [] || vals[1] == '' | retu | en
|
||||
cal ctrlp#acceptfile(a:mode, vals[1])
|
||||
let cur_pos = getpos('.')[1:2]
|
||||
if cur_pos != [1, 1] && cur_pos != map(vals[2:3], 'str2nr(v:val)')
|
||||
mark '
|
||||
en
|
||||
cal cursor(vals[2], vals[3])
|
||||
sil! norm! zvzz
|
||||
endf
|
||||
|
||||
fu! ctrlp#quickfix#id()
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
59
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/rtscript.vim
Normal file
59
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/rtscript.vim
Normal file
@@ -0,0 +1,59 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/rtscript.vim
|
||||
" Description: Runtime scripts extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_rtscript') && g:loaded_ctrlp_rtscript
|
||||
fini
|
||||
en
|
||||
let [g:loaded_ctrlp_rtscript, g:ctrlp_newrts] = [1, 0]
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#rtscript#init(s:caching)',
|
||||
\ 'accept': 'ctrlp#acceptfile',
|
||||
\ 'lname': 'runtime scripts',
|
||||
\ 'sname': 'rts',
|
||||
\ 'type': 'path',
|
||||
\ 'opmul': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
|
||||
let s:filecounts = {}
|
||||
" Utilities {{{1
|
||||
fu! s:nocache()
|
||||
retu g:ctrlp_newrts ||
|
||||
\ !s:caching || ( s:caching > 1 && get(s:filecounts, s:cwd) < s:caching )
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#rtscript#init(caching)
|
||||
let [s:caching, s:cwd] = [a:caching, getcwd()]
|
||||
if s:nocache() ||
|
||||
\ !( exists('g:ctrlp_rtscache') && g:ctrlp_rtscache[0] == &rtp )
|
||||
sil! cal ctrlp#progress('Indexing...')
|
||||
let entries = split(globpath(ctrlp#utils#fnesc(&rtp, 'g'), '**/*.*'), "\n")
|
||||
cal filter(entries, 'count(entries, v:val) == 1')
|
||||
let [entries, echoed] = [ctrlp#dirnfile(entries)[1], 1]
|
||||
el
|
||||
let [entries, results] = g:ctrlp_rtscache[2:3]
|
||||
en
|
||||
if s:nocache() ||
|
||||
\ !( exists('g:ctrlp_rtscache') && g:ctrlp_rtscache[:1] == [&rtp, s:cwd] )
|
||||
if !exists('echoed')
|
||||
sil! cal ctrlp#progress('Processing...')
|
||||
en
|
||||
let results = map(copy(entries), 'fnamemodify(v:val, '':.'')')
|
||||
en
|
||||
let [g:ctrlp_rtscache, g:ctrlp_newrts] = [[&rtp, s:cwd, entries, results], 0]
|
||||
cal extend(s:filecounts, { s:cwd : len(results) })
|
||||
retu results
|
||||
endf
|
||||
|
||||
fu! ctrlp#rtscript#id()
|
||||
retu s:id
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
146
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/tag.vim
Normal file
146
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/tag.vim
Normal file
@@ -0,0 +1,146 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/tag.vim
|
||||
" Description: Tag file extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if exists('g:loaded_ctrlp_tag') && g:loaded_ctrlp_tag
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_tag = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#tag#init()',
|
||||
\ 'accept': 'ctrlp#tag#accept',
|
||||
\ 'lname': 'tags',
|
||||
\ 'sname': 'tag',
|
||||
\ 'enter': 'ctrlp#tag#enter()',
|
||||
\ 'type': 'tabs',
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
" Utilities {{{1
|
||||
fu! s:findcount(str, tgaddr)
|
||||
let [tg, ofname] = split(a:str, '\t\+\ze[^\t]\+$')
|
||||
let tgs = taglist('^'.tg.'$')
|
||||
if len(tgs) < 2
|
||||
retu [0, 0, 0, 0]
|
||||
en
|
||||
let bname = fnamemodify(bufname('%'), ':p')
|
||||
let fname = expand(fnamemodify(simplify(ofname), ':s?^[.\/]\+??:p:.'), 1)
|
||||
let [fnd, cnt, pos, ctgs, otgs] = [0, 0, 0, [], []]
|
||||
for tgi in tgs
|
||||
let lst = bname == fnamemodify(tgi["filename"], ':p') ? 'ctgs' : 'otgs'
|
||||
cal call('add', [{lst}, tgi])
|
||||
endfo
|
||||
let ntgs = ctgs + otgs
|
||||
for tgi in ntgs
|
||||
let cnt += 1
|
||||
let fulname = fnamemodify(tgi["filename"], ':p')
|
||||
if stridx(fulname, fname) >= 0
|
||||
\ && strlen(fname) + stridx(fulname, fname) == strlen(fulname)
|
||||
let fnd += 1
|
||||
let pos = cnt
|
||||
en
|
||||
endfo
|
||||
let cnt = 0
|
||||
for tgi in ntgs
|
||||
let cnt += 1
|
||||
if tgi["filename"] == ofname
|
||||
if a:tgaddr != ""
|
||||
if a:tgaddr == tgi["cmd"]
|
||||
let [fnd, pos] = [0, cnt]
|
||||
en
|
||||
else
|
||||
let [fnd, pos] = [0, cnt]
|
||||
en
|
||||
en
|
||||
endfo
|
||||
retu [1, fnd, pos, len(ctgs)]
|
||||
endf
|
||||
|
||||
fu! s:filter(tags)
|
||||
let nr = 0
|
||||
wh 0 < 1
|
||||
if a:tags == [] | brea | en
|
||||
if a:tags[nr] =~ '^!' && a:tags[nr] !~# '^!_TAG_'
|
||||
let nr += 1
|
||||
con
|
||||
en
|
||||
if a:tags[nr] =~# '^!_TAG_' && len(a:tags) > nr
|
||||
cal remove(a:tags, nr)
|
||||
el
|
||||
brea
|
||||
en
|
||||
endw
|
||||
retu a:tags
|
||||
endf
|
||||
|
||||
fu! s:syntax()
|
||||
if !ctrlp#nosy()
|
||||
cal ctrlp#hicheck('CtrlPTabExtra', 'Comment')
|
||||
sy match CtrlPTabExtra '\zs\t.*\ze$'
|
||||
en
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#tag#init()
|
||||
if empty(s:tagfiles) | retu [] | en
|
||||
let g:ctrlp_alltags = []
|
||||
let tagfiles = sort(filter(s:tagfiles, 'count(s:tagfiles, v:val) == 1'))
|
||||
for each in tagfiles
|
||||
let alltags = s:filter(ctrlp#utils#readfile(each))
|
||||
cal extend(g:ctrlp_alltags, alltags)
|
||||
endfo
|
||||
cal s:syntax()
|
||||
retu g:ctrlp_alltags
|
||||
endf
|
||||
|
||||
fu! ctrlp#tag#accept(mode, str)
|
||||
cal ctrlp#exit()
|
||||
let tgaddr = matchstr(a:str, '^[^\t]\+\t\+[^\t]\+\t\zs[^\t]\{-1,}\ze\%(;"\)\?\t')
|
||||
let str = matchstr(a:str, '^[^\t]\+\t\+[^\t]\+\ze\t')
|
||||
let [tg, fdcnt] = [split(str, '^[^\t]\+\zs\t')[0], s:findcount(str, tgaddr)]
|
||||
let cmds = {
|
||||
\ 't': ['tab sp', 'tab stj'],
|
||||
\ 'h': ['sp', 'stj'],
|
||||
\ 'v': ['vs', 'vert stj'],
|
||||
\ 'e': ['', 'tj'],
|
||||
\ }
|
||||
let utg = fdcnt[3] < 2 && fdcnt[0] == 1 && fdcnt[1] == 1
|
||||
let cmd = !fdcnt[0] || utg ? cmds[a:mode][0] : cmds[a:mode][1]
|
||||
let cmd = a:mode == 'e' && ctrlp#modfilecond(!&aw)
|
||||
\ ? ( cmd == 'tj' ? 'stj' : 'sp' ) : cmd
|
||||
let cmd = a:mode == 't' ? ctrlp#tabcount().cmd : cmd
|
||||
if !fdcnt[0] || utg
|
||||
if cmd != ''
|
||||
exe cmd
|
||||
en
|
||||
let save_cst = &cst
|
||||
set cst&
|
||||
cal feedkeys(":".( utg ? fdcnt[2] : "" )."ta ".tg."\r", 'nt')
|
||||
let &cst = save_cst
|
||||
el
|
||||
let ext = ""
|
||||
if fdcnt[1] < 2 && fdcnt[2]
|
||||
let [sav_more, &more] = [&more, 0]
|
||||
let ext = fdcnt[2]."\r".":let &more = ".sav_more."\r"
|
||||
en
|
||||
cal feedkeys(":".cmd." ".tg."\r".ext, 'nt')
|
||||
en
|
||||
cal feedkeys('zvzz', 'nt')
|
||||
cal ctrlp#setlcdir()
|
||||
endf
|
||||
|
||||
fu! ctrlp#tag#id()
|
||||
retu s:id
|
||||
endf
|
||||
|
||||
fu! ctrlp#tag#enter()
|
||||
let tfs = get(g:, 'ctrlp_custom_tag_files', tagfiles())
|
||||
let s:tagfiles = type(tfs) == 3 && tfs != [] ? filter(map(tfs, 'fnamemodify(v:val, ":p")'),
|
||||
\ 'filereadable(v:val)') : []
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
154
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/undo.vim
Normal file
154
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/undo.vim
Normal file
@@ -0,0 +1,154 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/undo.vim
|
||||
" Description: Undo extension
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Init {{{1
|
||||
if ( exists('g:loaded_ctrlp_undo') && g:loaded_ctrlp_undo )
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp_undo = 1
|
||||
|
||||
cal add(g:ctrlp_ext_vars, {
|
||||
\ 'init': 'ctrlp#undo#init()',
|
||||
\ 'accept': 'ctrlp#undo#accept',
|
||||
\ 'lname': 'undo',
|
||||
\ 'sname': 'udo',
|
||||
\ 'enter': 'ctrlp#undo#enter()',
|
||||
\ 'exit': 'ctrlp#undo#exit()',
|
||||
\ 'type': 'line',
|
||||
\ 'sort': 0,
|
||||
\ 'nolim': 1,
|
||||
\ })
|
||||
|
||||
let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
|
||||
|
||||
let s:text = map(['second', 'seconds', 'minutes', 'hours', 'days', 'weeks',
|
||||
\ 'months', 'years'], '" ".v:val." ago"')
|
||||
" Utilities {{{1
|
||||
fu! s:getundo()
|
||||
if exists('*undotree')
|
||||
\ && ( v:version > 703 || ( v:version == 703 && has('patch005') ) )
|
||||
retu [1, undotree()]
|
||||
el
|
||||
redi => result
|
||||
sil! undol
|
||||
redi END
|
||||
retu [0, split(result, "\n")[1:]]
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:flatten(tree, cur)
|
||||
let flatdict = {}
|
||||
for each in a:tree
|
||||
let saved = has_key(each, 'save') ? 'saved' : ''
|
||||
let current = each['seq'] == a:cur ? 'current' : ''
|
||||
cal extend(flatdict, { each['seq'] : [each['time'], saved, current] })
|
||||
if has_key(each, 'alt')
|
||||
cal extend(flatdict, s:flatten(each['alt'], a:cur))
|
||||
en
|
||||
endfo
|
||||
retu flatdict
|
||||
endf
|
||||
|
||||
fu! s:elapsed(nr)
|
||||
let [text, time] = [s:text, localtime() - a:nr]
|
||||
let mins = time / 60
|
||||
let hrs = time / 3600
|
||||
let days = time / 86400
|
||||
let wks = time / 604800
|
||||
let mons = time / 2592000
|
||||
let yrs = time / 31536000
|
||||
if yrs > 1
|
||||
retu yrs.text[7]
|
||||
elsei mons > 1
|
||||
retu mons.text[6]
|
||||
elsei wks > 1
|
||||
retu wks.text[5]
|
||||
elsei days > 1
|
||||
retu days.text[4]
|
||||
elsei hrs > 1
|
||||
retu hrs.text[3]
|
||||
elsei mins > 1
|
||||
retu mins.text[2]
|
||||
elsei time == 1
|
||||
retu time.text[0]
|
||||
elsei time < 120
|
||||
retu time.text[1]
|
||||
en
|
||||
endf
|
||||
|
||||
fu! s:syntax()
|
||||
if ctrlp#nosy() | retu | en
|
||||
for [ke, va] in items({'T': 'Directory', 'Br': 'Comment', 'Nr': 'String',
|
||||
\ 'Sv': 'Comment', 'Po': 'Title'})
|
||||
cal ctrlp#hicheck('CtrlPUndo'.ke, va)
|
||||
endfo
|
||||
sy match CtrlPUndoT '\v\d+ \zs[^ ]+\ze|\d+:\d+:\d+'
|
||||
sy match CtrlPUndoBr '\[\|\]'
|
||||
sy match CtrlPUndoNr '\[\d\+\]' contains=CtrlPUndoBr
|
||||
sy match CtrlPUndoSv 'saved'
|
||||
sy match CtrlPUndoPo 'current'
|
||||
endf
|
||||
|
||||
fu! s:dict2list(dict)
|
||||
for ke in keys(a:dict)
|
||||
let a:dict[ke][0] = s:elapsed(a:dict[ke][0])
|
||||
endfo
|
||||
retu map(keys(a:dict), 'eval(''[v:val, a:dict[v:val]]'')')
|
||||
endf
|
||||
|
||||
fu! s:compval(...)
|
||||
retu a:2[0] - a:1[0]
|
||||
endf
|
||||
|
||||
fu! s:format(...)
|
||||
let saved = !empty(a:1[1][1]) ? ' '.a:1[1][1] : ''
|
||||
let current = !empty(a:1[1][2]) ? ' '.a:1[1][2] : ''
|
||||
retu a:1[1][0].' ['.a:1[0].']'.saved.current
|
||||
endf
|
||||
|
||||
fu! s:formatul(...)
|
||||
let parts = matchlist(a:1,
|
||||
\ '\v^\s+(\d+)\s+\d+\s+([^ ]+\s?[^ ]+|\d+\s\w+\s\w+)(\s*\d*)$')
|
||||
retu parts == [] ? '----'
|
||||
\ : parts[2].' ['.parts[1].']'.( parts[3] != '' ? ' saved' : '' )
|
||||
endf
|
||||
" Public {{{1
|
||||
fu! ctrlp#undo#init()
|
||||
let entries = s:undos[0] ? s:undos[1]['entries'] : s:undos[1]
|
||||
if empty(entries) | retu [] | en
|
||||
if !exists('s:lines')
|
||||
if s:undos[0]
|
||||
let entries = s:dict2list(s:flatten(entries, s:undos[1]['seq_cur']))
|
||||
let s:lines = map(sort(entries, 's:compval'), 's:format(v:val)')
|
||||
el
|
||||
let s:lines = map(reverse(entries), 's:formatul(v:val)')
|
||||
en
|
||||
en
|
||||
cal s:syntax()
|
||||
retu s:lines
|
||||
endf
|
||||
|
||||
fu! ctrlp#undo#accept(mode, str)
|
||||
let undon = matchstr(a:str, '\[\zs\d\+\ze\]')
|
||||
if empty(undon) | retu | en
|
||||
cal ctrlp#exit()
|
||||
exe 'u' undon
|
||||
endf
|
||||
|
||||
fu! ctrlp#undo#id()
|
||||
retu s:id
|
||||
endf
|
||||
|
||||
fu! ctrlp#undo#enter()
|
||||
let s:undos = s:getundo()
|
||||
endf
|
||||
|
||||
fu! ctrlp#undo#exit()
|
||||
unl! s:lines
|
||||
endf
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
119
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/utils.vim
Normal file
119
dot_vim/plugged/ctrlp.vim/autoload/ctrlp/utils.vim
Normal file
@@ -0,0 +1,119 @@
|
||||
" =============================================================================
|
||||
" File: autoload/ctrlp/utils.vim
|
||||
" Description: Utilities
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
|
||||
" Static variables {{{1
|
||||
fu! ctrlp#utils#lash()
|
||||
retu &ssl || !exists('+ssl') ? '/' : '\'
|
||||
endf
|
||||
|
||||
fu! s:lash(...)
|
||||
retu ( a:0 ? a:1 : getcwd() ) !~ '[\/]$' ? s:lash : ''
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#opts()
|
||||
let s:lash = ctrlp#utils#lash()
|
||||
let usrhome = $HOME . s:lash( $HOME )
|
||||
let cahome = exists('$XDG_CACHE_HOME') ? $XDG_CACHE_HOME : usrhome.'.cache'
|
||||
let cadir = isdirectory(usrhome.'.ctrlp_cache')
|
||||
\ ? usrhome.'.ctrlp_cache' : cahome.s:lash(cahome).'ctrlp'
|
||||
if exists('g:ctrlp_cache_dir')
|
||||
let cadir = expand(g:ctrlp_cache_dir, 1)
|
||||
if isdirectory(cadir.s:lash(cadir).'.ctrlp_cache')
|
||||
let cadir = cadir.s:lash(cadir).'.ctrlp_cache'
|
||||
en
|
||||
en
|
||||
let s:cache_dir = cadir
|
||||
endf
|
||||
cal ctrlp#utils#opts()
|
||||
|
||||
let s:wig_cond = v:version > 702 || ( v:version == 702 && has('patch051') )
|
||||
" Files and Directories {{{1
|
||||
fu! ctrlp#utils#cachedir()
|
||||
retu s:cache_dir
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#cachefile(...)
|
||||
let [tail, dir] = [a:0 == 1 ? '.'.a:1 : '', a:0 == 2 ? a:1 : getcwd()]
|
||||
let cache_file = substitute(dir, '\([\/]\|^\a\zs:\)', '%', 'g').tail.'.txt'
|
||||
retu a:0 == 1 ? cache_file : s:cache_dir.s:lash(s:cache_dir).cache_file
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#readfile(file)
|
||||
if filereadable(a:file)
|
||||
let data = readfile(a:file)
|
||||
if empty(data) || type(data) != 3
|
||||
unl data
|
||||
let data = []
|
||||
en
|
||||
retu data
|
||||
en
|
||||
retu []
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#mkdir(dir)
|
||||
if exists('*mkdir') && !isdirectory(a:dir)
|
||||
sil! cal mkdir(a:dir, 'p')
|
||||
en
|
||||
retu a:dir
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#writecache(lines, ...)
|
||||
if isdirectory(ctrlp#utils#mkdir(a:0 ? a:1 : s:cache_dir))
|
||||
sil! cal writefile(a:lines, a:0 >= 2 ? a:2 : ctrlp#utils#cachefile())
|
||||
en
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#glob(...)
|
||||
let path = ctrlp#utils#fnesc(a:1, 'g')
|
||||
retu s:wig_cond ? glob(path, a:2) : glob(path)
|
||||
endf
|
||||
|
||||
fu! ctrlp#utils#globpath(...)
|
||||
retu call('globpath', s:wig_cond ? a:000 : a:000[:1])
|
||||
endf
|
||||
|
||||
if exists('*fnameescape')
|
||||
if exists('+ssl')
|
||||
fu! ctrlp#utils#fnesc(path, type, ...)
|
||||
if a:type == 'c'
|
||||
let path = escape(a:path, '%#')
|
||||
elsei a:type == 'f'
|
||||
let path = fnameescape(a:path)
|
||||
elsei a:type == 'g'
|
||||
let path = escape(a:path, '?*')
|
||||
en
|
||||
let path = substitute(path, '[', '[[]', 'g')
|
||||
retu a:0 ? escape(path, a:1) : path
|
||||
endf
|
||||
el
|
||||
fu! ctrlp#utils#fnesc(path, type, ...)
|
||||
let path = fnameescape(a:path)
|
||||
retu a:0 ? escape(path, a:1) : path
|
||||
endf
|
||||
en
|
||||
el
|
||||
if exists('+ssl')
|
||||
fu! ctrlp#utils#fnesc(path, type, ...)
|
||||
if a:type == 'c'
|
||||
let path = escape(a:path, '%#')
|
||||
elsei a:type == 'f'
|
||||
let path = escape(a:path, " \t\n%#*?|<\"")
|
||||
elsei a:type == 'g'
|
||||
let path = escape(a:path, '?*')
|
||||
en
|
||||
let path = substitute(path, '[', '[[]', 'g')
|
||||
retu a:0 ? escape(path, a:1) : path
|
||||
endf
|
||||
el
|
||||
fu! ctrlp#utils#fnesc(path, type, ...)
|
||||
let path = escape(a:path, " \t\n*?[{`$\\%#'\"|!<")
|
||||
retu a:0 ? escape(path, a:1) : path
|
||||
endf
|
||||
en
|
||||
en
|
||||
"}}}
|
||||
|
||||
" vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2
|
||||
1605
dot_vim/plugged/ctrlp.vim/doc/ctrlp.cnx
Normal file
1605
dot_vim/plugged/ctrlp.vim/doc/ctrlp.cnx
Normal file
File diff suppressed because it is too large
Load Diff
1687
dot_vim/plugged/ctrlp.vim/doc/ctrlp.txt
Normal file
1687
dot_vim/plugged/ctrlp.vim/doc/ctrlp.txt
Normal file
File diff suppressed because it is too large
Load Diff
112
dot_vim/plugged/ctrlp.vim/doc/tags
Normal file
112
dot_vim/plugged/ctrlp.vim/doc/tags
Normal file
@@ -0,0 +1,112 @@
|
||||
'ctrl-p' ctrlp.txt /*'ctrl-p'*
|
||||
'ctrlp' ctrlp.txt /*'ctrlp'*
|
||||
'ctrlp-<c-p>' ctrlp.txt /*'ctrlp-<c-p>'*
|
||||
'ctrlp-autocompletion' ctrlp.txt /*'ctrlp-autocompletion'*
|
||||
'ctrlp-fullregexp' ctrlp.txt /*'ctrlp-fullregexp'*
|
||||
'ctrlp-pasting' ctrlp.txt /*'ctrlp-pasting'*
|
||||
'g:ctrlp_arg_map' ctrlp.txt /*'g:ctrlp_arg_map'*
|
||||
'g:ctrlp_brief_prompt' ctrlp.txt /*'g:ctrlp_brief_prompt'*
|
||||
'g:ctrlp_buffer_func' ctrlp.txt /*'g:ctrlp_buffer_func'*
|
||||
'g:ctrlp_bufname_mod' ctrlp.txt /*'g:ctrlp_bufname_mod'*
|
||||
'g:ctrlp_bufpath_mod' ctrlp.txt /*'g:ctrlp_bufpath_mod'*
|
||||
'g:ctrlp_buftag_ctags_bin' ctrlp.txt /*'g:ctrlp_buftag_ctags_bin'*
|
||||
'g:ctrlp_buftag_systemenc' ctrlp.txt /*'g:ctrlp_buftag_systemenc'*
|
||||
'g:ctrlp_buftag_types' ctrlp.txt /*'g:ctrlp_buftag_types'*
|
||||
'g:ctrlp_by_filename' ctrlp.txt /*'g:ctrlp_by_filename'*
|
||||
'g:ctrlp_cache_dir' ctrlp.txt /*'g:ctrlp_cache_dir'*
|
||||
'g:ctrlp_clear_cache_on_exit' ctrlp.txt /*'g:ctrlp_clear_cache_on_exit'*
|
||||
'g:ctrlp_cmd' ctrlp.txt /*'g:ctrlp_cmd'*
|
||||
'g:ctrlp_custom_ignore' ctrlp.txt /*'g:ctrlp_custom_ignore'*
|
||||
'g:ctrlp_default_input' ctrlp.txt /*'g:ctrlp_default_input'*
|
||||
'g:ctrlp_follow_symlinks' ctrlp.txt /*'g:ctrlp_follow_symlinks'*
|
||||
'g:ctrlp_key_loop' ctrlp.txt /*'g:ctrlp_key_loop'*
|
||||
'g:ctrlp_lazy_update' ctrlp.txt /*'g:ctrlp_lazy_update'*
|
||||
'g:ctrlp_line_prefix' ctrlp.txt /*'g:ctrlp_line_prefix'*
|
||||
'g:ctrlp_map' ctrlp.txt /*'g:ctrlp_map'*
|
||||
'g:ctrlp_match_current_file' ctrlp.txt /*'g:ctrlp_match_current_file'*
|
||||
'g:ctrlp_match_func' ctrlp.txt /*'g:ctrlp_match_func'*
|
||||
'g:ctrlp_match_window' ctrlp.txt /*'g:ctrlp_match_window'*
|
||||
'g:ctrlp_max_depth' ctrlp.txt /*'g:ctrlp_max_depth'*
|
||||
'g:ctrlp_max_files' ctrlp.txt /*'g:ctrlp_max_files'*
|
||||
'g:ctrlp_max_history' ctrlp.txt /*'g:ctrlp_max_history'*
|
||||
'g:ctrlp_mruf_case_sensitive' ctrlp.txt /*'g:ctrlp_mruf_case_sensitive'*
|
||||
'g:ctrlp_mruf_default_order' ctrlp.txt /*'g:ctrlp_mruf_default_order'*
|
||||
'g:ctrlp_mruf_exclude' ctrlp.txt /*'g:ctrlp_mruf_exclude'*
|
||||
'g:ctrlp_mruf_include' ctrlp.txt /*'g:ctrlp_mruf_include'*
|
||||
'g:ctrlp_mruf_max' ctrlp.txt /*'g:ctrlp_mruf_max'*
|
||||
'g:ctrlp_mruf_relative' ctrlp.txt /*'g:ctrlp_mruf_relative'*
|
||||
'g:ctrlp_mruf_save_on_update' ctrlp.txt /*'g:ctrlp_mruf_save_on_update'*
|
||||
'g:ctrlp_open_func' ctrlp.txt /*'g:ctrlp_open_func'*
|
||||
'g:ctrlp_open_multiple_files' ctrlp.txt /*'g:ctrlp_open_multiple_files'*
|
||||
'g:ctrlp_open_new_file' ctrlp.txt /*'g:ctrlp_open_new_file'*
|
||||
'g:ctrlp_open_single_match' ctrlp.txt /*'g:ctrlp_open_single_match'*
|
||||
'g:ctrlp_prompt_mappings' ctrlp.txt /*'g:ctrlp_prompt_mappings'*
|
||||
'g:ctrlp_regexp' ctrlp.txt /*'g:ctrlp_regexp'*
|
||||
'g:ctrlp_reuse_window' ctrlp.txt /*'g:ctrlp_reuse_window'*
|
||||
'g:ctrlp_root_markers' ctrlp.txt /*'g:ctrlp_root_markers'*
|
||||
'g:ctrlp_show_hidden' ctrlp.txt /*'g:ctrlp_show_hidden'*
|
||||
'g:ctrlp_status_func' ctrlp.txt /*'g:ctrlp_status_func'*
|
||||
'g:ctrlp_switch_buffer' ctrlp.txt /*'g:ctrlp_switch_buffer'*
|
||||
'g:ctrlp_tabpage_position' ctrlp.txt /*'g:ctrlp_tabpage_position'*
|
||||
'g:ctrlp_tilde_homedir' ctrlp.txt /*'g:ctrlp_tilde_homedir'*
|
||||
'g:ctrlp_types' ctrlp.txt /*'g:ctrlp_types'*
|
||||
'g:ctrlp_use_caching' ctrlp.txt /*'g:ctrlp_use_caching'*
|
||||
'g:ctrlp_use_readdir' ctrlp.txt /*'g:ctrlp_use_readdir'*
|
||||
'g:ctrlp_user_command' ctrlp.txt /*'g:ctrlp_user_command'*
|
||||
'g:ctrlp_working_path_mode' ctrlp.txt /*'g:ctrlp_working_path_mode'*
|
||||
'g:loaded_ctrlp' ctrlp.txt /*'g:loaded_ctrlp'*
|
||||
:CtrlP ctrlp.txt /*:CtrlP*
|
||||
:CtrlPBookmarkDir ctrlp.txt /*:CtrlPBookmarkDir*
|
||||
:CtrlPBookmarkDirAdd ctrlp.txt /*:CtrlPBookmarkDirAdd*
|
||||
:CtrlPBufTag ctrlp.txt /*:CtrlPBufTag*
|
||||
:CtrlPBufTagAll ctrlp.txt /*:CtrlPBufTagAll*
|
||||
:CtrlPBuffer ctrlp.txt /*:CtrlPBuffer*
|
||||
:CtrlPChange ctrlp.txt /*:CtrlPChange*
|
||||
:CtrlPChangeAll ctrlp.txt /*:CtrlPChangeAll*
|
||||
:CtrlPClearAllCaches ctrlp.txt /*:CtrlPClearAllCaches*
|
||||
:CtrlPClearCache ctrlp.txt /*:CtrlPClearCache*
|
||||
:CtrlPCurFile ctrlp.txt /*:CtrlPCurFile*
|
||||
:CtrlPCurWD ctrlp.txt /*:CtrlPCurWD*
|
||||
:CtrlPDir ctrlp.txt /*:CtrlPDir*
|
||||
:CtrlPLastMode ctrlp.txt /*:CtrlPLastMode*
|
||||
:CtrlPLine ctrlp.txt /*:CtrlPLine*
|
||||
:CtrlPMRU ctrlp.txt /*:CtrlPMRU*
|
||||
:CtrlPMixed ctrlp.txt /*:CtrlPMixed*
|
||||
:CtrlPQuickfix ctrlp.txt /*:CtrlPQuickfix*
|
||||
:CtrlPRTS ctrlp.txt /*:CtrlPRTS*
|
||||
:CtrlPRoot ctrlp.txt /*:CtrlPRoot*
|
||||
:CtrlPTag ctrlp.txt /*:CtrlPTag*
|
||||
:CtrlPUndo ctrlp.txt /*:CtrlPUndo*
|
||||
ClearAllCtrlPCaches ctrlp.txt /*ClearAllCtrlPCaches*
|
||||
ClearCtrlPCache ctrlp.txt /*ClearCtrlPCache*
|
||||
ControlP ctrlp.txt /*ControlP*
|
||||
CtrlP ctrlp.txt /*CtrlP*
|
||||
ResetCtrlP ctrlp.txt /*ResetCtrlP*
|
||||
ctrlp-autoignore-extension ctrlp.txt /*ctrlp-autoignore-extension*
|
||||
ctrlp-changelog ctrlp.txt /*ctrlp-changelog*
|
||||
ctrlp-commands ctrlp.txt /*ctrlp-commands*
|
||||
ctrlp-contents ctrlp.txt /*ctrlp-contents*
|
||||
ctrlp-credits ctrlp.txt /*ctrlp-credits*
|
||||
ctrlp-customization ctrlp.txt /*ctrlp-customization*
|
||||
ctrlp-default-value ctrlp.txt /*ctrlp-default-value*
|
||||
ctrlp-extensions ctrlp.txt /*ctrlp-extensions*
|
||||
ctrlp-input-formats ctrlp.txt /*ctrlp-input-formats*
|
||||
ctrlp-intro ctrlp.txt /*ctrlp-intro*
|
||||
ctrlp-mappings ctrlp.txt /*ctrlp-mappings*
|
||||
ctrlp-miscellaneous-configs ctrlp.txt /*ctrlp-miscellaneous-configs*
|
||||
ctrlp-options ctrlp.txt /*ctrlp-options*
|
||||
ctrlp.txt ctrlp.txt /*ctrlp.txt*
|
||||
ctrlp_compare_lim ctrlp.txt /*ctrlp_compare_lim*
|
||||
g:ctrlp_dont_split ctrlp.txt /*g:ctrlp_dont_split*
|
||||
g:ctrlp_dotfiles ctrlp.txt /*g:ctrlp_dotfiles*
|
||||
g:ctrlp_highlight_match ctrlp.txt /*g:ctrlp_highlight_match*
|
||||
g:ctrlp_jump_to_buffer ctrlp.txt /*g:ctrlp_jump_to_buffer*
|
||||
g:ctrlp_live_update ctrlp.txt /*g:ctrlp_live_update*
|
||||
g:ctrlp_match_window_bottom ctrlp.txt /*g:ctrlp_match_window_bottom*
|
||||
g:ctrlp_match_window_reversed ctrlp.txt /*g:ctrlp_match_window_reversed*
|
||||
g:ctrlp_max_height ctrlp.txt /*g:ctrlp_max_height*
|
||||
g:ctrlp_mru_files ctrlp.txt /*g:ctrlp_mru_files*
|
||||
g:ctrlp_open_multi ctrlp.txt /*g:ctrlp_open_multi*
|
||||
g:ctrlp_persistent_input ctrlp.txt /*g:ctrlp_persistent_input*
|
||||
g:ctrlp_regexp_search ctrlp.txt /*g:ctrlp_regexp_search*
|
||||
string-match ctrlp.txt /*string-match*
|
||||
111
dot_vim/plugged/ctrlp.vim/doc/tags-cn
Normal file
111
dot_vim/plugged/ctrlp.vim/doc/tags-cn
Normal file
@@ -0,0 +1,111 @@
|
||||
!_TAG_FILE_ENCODING utf-8 //
|
||||
'ctrl-p' ctrlp.cnx /*'ctrl-p'*
|
||||
'ctrlp' ctrlp.cnx /*'ctrlp'*
|
||||
'ctrlp-<c-p>' ctrlp.cnx /*'ctrlp-<c-p>'*
|
||||
'ctrlp-autocompletion' ctrlp.cnx /*'ctrlp-autocompletion'*
|
||||
'ctrlp-fullregexp' ctrlp.cnx /*'ctrlp-fullregexp'*
|
||||
'ctrlp-pasting' ctrlp.cnx /*'ctrlp-pasting'*
|
||||
'g:ctrlp_arg_map' ctrlp.cnx /*'g:ctrlp_arg_map'*
|
||||
'g:ctrlp_brief_prompt' ctrlp.cnx /*'g:ctrlp_brief_prompt'*
|
||||
'g:ctrlp_buffer_func' ctrlp.cnx /*'g:ctrlp_buffer_func'*
|
||||
'g:ctrlp_bufname_mod' ctrlp.cnx /*'g:ctrlp_bufname_mod'*
|
||||
'g:ctrlp_bufpath_mod' ctrlp.cnx /*'g:ctrlp_bufpath_mod'*
|
||||
'g:ctrlp_buftag_ctags_bin' ctrlp.cnx /*'g:ctrlp_buftag_ctags_bin'*
|
||||
'g:ctrlp_buftag_systemenc' ctrlp.cnx /*'g:ctrlp_buftag_systemenc'*
|
||||
'g:ctrlp_buftag_types' ctrlp.cnx /*'g:ctrlp_buftag_types'*
|
||||
'g:ctrlp_by_filename' ctrlp.cnx /*'g:ctrlp_by_filename'*
|
||||
'g:ctrlp_cache_dir' ctrlp.cnx /*'g:ctrlp_cache_dir'*
|
||||
'g:ctrlp_clear_cache_on_exit' ctrlp.cnx /*'g:ctrlp_clear_cache_on_exit'*
|
||||
'g:ctrlp_cmd' ctrlp.cnx /*'g:ctrlp_cmd'*
|
||||
'g:ctrlp_custom_ignore' ctrlp.cnx /*'g:ctrlp_custom_ignore'*
|
||||
'g:ctrlp_default_input' ctrlp.cnx /*'g:ctrlp_default_input'*
|
||||
'g:ctrlp_follow_symlinks' ctrlp.cnx /*'g:ctrlp_follow_symlinks'*
|
||||
'g:ctrlp_key_loop' ctrlp.cnx /*'g:ctrlp_key_loop'*
|
||||
'g:ctrlp_lazy_update' ctrlp.cnx /*'g:ctrlp_lazy_update'*
|
||||
'g:ctrlp_line_prefix' ctrlp.cnx /*'g:ctrlp_line_prefix'*
|
||||
'g:ctrlp_map' ctrlp.cnx /*'g:ctrlp_map'*
|
||||
'g:ctrlp_match_current_file' ctrlp.cnx /*'g:ctrlp_match_current_file'*
|
||||
'g:ctrlp_match_func' ctrlp.cnx /*'g:ctrlp_match_func'*
|
||||
'g:ctrlp_match_window' ctrlp.cnx /*'g:ctrlp_match_window'*
|
||||
'g:ctrlp_max_depth' ctrlp.cnx /*'g:ctrlp_max_depth'*
|
||||
'g:ctrlp_max_files' ctrlp.cnx /*'g:ctrlp_max_files'*
|
||||
'g:ctrlp_max_history' ctrlp.cnx /*'g:ctrlp_max_history'*
|
||||
'g:ctrlp_mruf_case_sensitive' ctrlp.cnx /*'g:ctrlp_mruf_case_sensitive'*
|
||||
'g:ctrlp_mruf_default_order' ctrlp.cnx /*'g:ctrlp_mruf_default_order'*
|
||||
'g:ctrlp_mruf_exclude' ctrlp.cnx /*'g:ctrlp_mruf_exclude'*
|
||||
'g:ctrlp_mruf_include' ctrlp.cnx /*'g:ctrlp_mruf_include'*
|
||||
'g:ctrlp_mruf_max' ctrlp.cnx /*'g:ctrlp_mruf_max'*
|
||||
'g:ctrlp_mruf_relative' ctrlp.cnx /*'g:ctrlp_mruf_relative'*
|
||||
'g:ctrlp_mruf_save_on_update' ctrlp.cnx /*'g:ctrlp_mruf_save_on_update'*
|
||||
'g:ctrlp_open_func' ctrlp.cnx /*'g:ctrlp_open_func'*
|
||||
'g:ctrlp_open_multiple_files' ctrlp.cnx /*'g:ctrlp_open_multiple_files'*
|
||||
'g:ctrlp_open_new_file' ctrlp.cnx /*'g:ctrlp_open_new_file'*
|
||||
'g:ctrlp_open_single_match' ctrlp.cnx /*'g:ctrlp_open_single_match'*
|
||||
'g:ctrlp_prompt_mappings' ctrlp.cnx /*'g:ctrlp_prompt_mappings'*
|
||||
'g:ctrlp_regexp' ctrlp.cnx /*'g:ctrlp_regexp'*
|
||||
'g:ctrlp_reuse_window' ctrlp.cnx /*'g:ctrlp_reuse_window'*
|
||||
'g:ctrlp_root_markers' ctrlp.cnx /*'g:ctrlp_root_markers'*
|
||||
'g:ctrlp_show_hidden' ctrlp.cnx /*'g:ctrlp_show_hidden'*
|
||||
'g:ctrlp_status_func' ctrlp.cnx /*'g:ctrlp_status_func'*
|
||||
'g:ctrlp_switch_buffer' ctrlp.cnx /*'g:ctrlp_switch_buffer'*
|
||||
'g:ctrlp_tabpage_position' ctrlp.cnx /*'g:ctrlp_tabpage_position'*
|
||||
'g:ctrlp_tilde_homedir' ctrlp.cnx /*'g:ctrlp_tilde_homedir'*
|
||||
'g:ctrlp_types' ctrlp.cnx /*'g:ctrlp_types'*
|
||||
'g:ctrlp_use_caching' ctrlp.cnx /*'g:ctrlp_use_caching'*
|
||||
'g:ctrlp_user_command' ctrlp.cnx /*'g:ctrlp_user_command'*
|
||||
'g:ctrlp_working_path_mode' ctrlp.cnx /*'g:ctrlp_working_path_mode'*
|
||||
'g:loaded_ctrlp' ctrlp.cnx /*'g:loaded_ctrlp'*
|
||||
:CtrlP ctrlp.cnx /*:CtrlP*
|
||||
:CtrlPBookmarkDir ctrlp.cnx /*:CtrlPBookmarkDir*
|
||||
:CtrlPBookmarkDirAdd ctrlp.cnx /*:CtrlPBookmarkDirAdd*
|
||||
:CtrlPBufTag ctrlp.cnx /*:CtrlPBufTag*
|
||||
:CtrlPBufTagAll ctrlp.cnx /*:CtrlPBufTagAll*
|
||||
:CtrlPBuffer ctrlp.cnx /*:CtrlPBuffer*
|
||||
:CtrlPChange ctrlp.cnx /*:CtrlPChange*
|
||||
:CtrlPChangeAll ctrlp.cnx /*:CtrlPChangeAll*
|
||||
:CtrlPClearAllCaches ctrlp.cnx /*:CtrlPClearAllCaches*
|
||||
:CtrlPClearCache ctrlp.cnx /*:CtrlPClearCache*
|
||||
:CtrlPCurFile ctrlp.cnx /*:CtrlPCurFile*
|
||||
:CtrlPCurWD ctrlp.cnx /*:CtrlPCurWD*
|
||||
:CtrlPDir ctrlp.cnx /*:CtrlPDir*
|
||||
:CtrlPLastMode ctrlp.cnx /*:CtrlPLastMode*
|
||||
:CtrlPLine ctrlp.cnx /*:CtrlPLine*
|
||||
:CtrlPMRU ctrlp.cnx /*:CtrlPMRU*
|
||||
:CtrlPMixed ctrlp.cnx /*:CtrlPMixed*
|
||||
:CtrlPQuickfix ctrlp.cnx /*:CtrlPQuickfix*
|
||||
:CtrlPRTS ctrlp.cnx /*:CtrlPRTS*
|
||||
:CtrlPRoot ctrlp.cnx /*:CtrlPRoot*
|
||||
:CtrlPTag ctrlp.cnx /*:CtrlPTag*
|
||||
:CtrlPUndo ctrlp.cnx /*:CtrlPUndo*
|
||||
ClearAllCtrlPCaches ctrlp.cnx /*ClearAllCtrlPCaches*
|
||||
ClearCtrlPCache ctrlp.cnx /*ClearCtrlPCache*
|
||||
ControlP ctrlp.cnx /*ControlP*
|
||||
CtrlP ctrlp.cnx /*CtrlP*
|
||||
ResetCtrlP ctrlp.cnx /*ResetCtrlP*
|
||||
ctrlp-autoignore-extension ctrlp.cnx /*ctrlp-autoignore-extension*
|
||||
ctrlp-changelog ctrlp.cnx /*ctrlp-changelog*
|
||||
ctrlp-commands ctrlp.cnx /*ctrlp-commands*
|
||||
ctrlp-content ctrlp.cnx /*ctrlp-content*
|
||||
ctrlp-credits ctrlp.cnx /*ctrlp-credits*
|
||||
ctrlp-customization ctrlp.cnx /*ctrlp-customization*
|
||||
ctrlp-default-value ctrlp.cnx /*ctrlp-default-value*
|
||||
ctrlp-extensions ctrlp.cnx /*ctrlp-extensions*
|
||||
ctrlp-input-formats ctrlp.cnx /*ctrlp-input-formats*
|
||||
ctrlp-intro ctrlp.cnx /*ctrlp-intro*
|
||||
ctrlp-mappings ctrlp.cnx /*ctrlp-mappings*
|
||||
ctrlp-miscellaneous-configs ctrlp.cnx /*ctrlp-miscellaneous-configs*
|
||||
ctrlp-options ctrlp.cnx /*ctrlp-options*
|
||||
ctrlp.txt ctrlp.cnx /*ctrlp.txt*
|
||||
g:ctrlp_dont_split ctrlp.cnx /*g:ctrlp_dont_split*
|
||||
g:ctrlp_dotfiles ctrlp.cnx /*g:ctrlp_dotfiles*
|
||||
g:ctrlp_highlight_match ctrlp.cnx /*g:ctrlp_highlight_match*
|
||||
g:ctrlp_jump_to_buffer ctrlp.cnx /*g:ctrlp_jump_to_buffer*
|
||||
g:ctrlp_live_update ctrlp.cnx /*g:ctrlp_live_update*
|
||||
g:ctrlp_match_window_bottom ctrlp.cnx /*g:ctrlp_match_window_bottom*
|
||||
g:ctrlp_match_window_reversed ctrlp.cnx /*g:ctrlp_match_window_reversed*
|
||||
g:ctrlp_max_height ctrlp.cnx /*g:ctrlp_max_height*
|
||||
g:ctrlp_mru_files ctrlp.cnx /*g:ctrlp_mru_files*
|
||||
g:ctrlp_open_multi ctrlp.cnx /*g:ctrlp_open_multi*
|
||||
g:ctrlp_persistent_input ctrlp.cnx /*g:ctrlp_persistent_input*
|
||||
g:ctrlp_regexp_search ctrlp.cnx /*g:ctrlp_regexp_search*
|
||||
string-match ctrlp.cnx /*string-match*
|
||||
1
dot_vim/plugged/ctrlp.vim/dot_git/HEAD
Normal file
1
dot_vim/plugged/ctrlp.vim/dot_git/HEAD
Normal file
@@ -0,0 +1 @@
|
||||
ref: refs/heads/master
|
||||
0
dot_vim/plugged/ctrlp.vim/dot_git/branches/.keep
Normal file
0
dot_vim/plugged/ctrlp.vim/dot_git/branches/.keep
Normal file
11
dot_vim/plugged/ctrlp.vim/dot_git/config
Normal file
11
dot_vim/plugged/ctrlp.vim/dot_git/config
Normal file
@@ -0,0 +1,11 @@
|
||||
[core]
|
||||
repositoryformatversion = 0
|
||||
filemode = true
|
||||
bare = false
|
||||
logallrefupdates = true
|
||||
[remote "origin"]
|
||||
url = https://github.com/ctrlpvim/ctrlp.vim.git
|
||||
fetch = +refs/heads/*:refs/remotes/origin/*
|
||||
[branch "master"]
|
||||
remote = origin
|
||||
merge = refs/heads/master
|
||||
1
dot_vim/plugged/ctrlp.vim/dot_git/description
Normal file
1
dot_vim/plugged/ctrlp.vim/dot_git/description
Normal file
@@ -0,0 +1 @@
|
||||
Unnamed repository; edit this file 'description' to name the repository.
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to check the commit log message taken by
|
||||
# applypatch from an e-mail message.
|
||||
#
|
||||
# The hook should exit with non-zero status after issuing an
|
||||
# appropriate message if it wants to stop the commit. The hook is
|
||||
# allowed to edit the commit message file.
|
||||
#
|
||||
# To enable this hook, rename this file to "applypatch-msg".
|
||||
|
||||
. git-sh-setup
|
||||
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
|
||||
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
|
||||
:
|
||||
24
dot_vim/plugged/ctrlp.vim/dot_git/hooks/commit-msg.sample
Normal file
24
dot_vim/plugged/ctrlp.vim/dot_git/hooks/commit-msg.sample
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to check the commit log message.
|
||||
# Called by "git commit" with one argument, the name of the file
|
||||
# that has the commit message. The hook should exit with non-zero
|
||||
# status after issuing an appropriate message if it wants to stop the
|
||||
# commit. The hook is allowed to edit the commit message file.
|
||||
#
|
||||
# To enable this hook, rename this file to "commit-msg".
|
||||
|
||||
# Uncomment the below to add a Signed-off-by line to the message.
|
||||
# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
|
||||
# hook is more suited to it.
|
||||
#
|
||||
# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||
# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
|
||||
|
||||
# This example catches duplicate Signed-off-by lines.
|
||||
|
||||
test "" = "$(grep '^Signed-off-by: ' "$1" |
|
||||
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
|
||||
echo >&2 Duplicate Signed-off-by lines.
|
||||
exit 1
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use IPC::Open2;
|
||||
|
||||
# An example hook script to integrate Watchman
|
||||
# (https://facebook.github.io/watchman/) with git to speed up detecting
|
||||
# new and modified files.
|
||||
#
|
||||
# The hook is passed a version (currently 2) and last update token
|
||||
# formatted as a string and outputs to stdout a new update token and
|
||||
# all files that have been modified since the update token. Paths must
|
||||
# be relative to the root of the working tree and separated by a single NUL.
|
||||
#
|
||||
# To enable this hook, rename this file to "query-watchman" and set
|
||||
# 'git config core.fsmonitor .git/hooks/query-watchman'
|
||||
#
|
||||
my ($version, $last_update_token) = @ARGV;
|
||||
|
||||
# Uncomment for debugging
|
||||
# print STDERR "$0 $version $last_update_token\n";
|
||||
|
||||
# Check the hook interface version
|
||||
if ($version ne 2) {
|
||||
die "Unsupported query-fsmonitor hook version '$version'.\n" .
|
||||
"Falling back to scanning...\n";
|
||||
}
|
||||
|
||||
my $git_work_tree = get_working_dir();
|
||||
|
||||
my $retry = 1;
|
||||
|
||||
my $json_pkg;
|
||||
eval {
|
||||
require JSON::XS;
|
||||
$json_pkg = "JSON::XS";
|
||||
1;
|
||||
} or do {
|
||||
require JSON::PP;
|
||||
$json_pkg = "JSON::PP";
|
||||
};
|
||||
|
||||
launch_watchman();
|
||||
|
||||
sub launch_watchman {
|
||||
my $o = watchman_query();
|
||||
if (is_work_tree_watched($o)) {
|
||||
output_result($o->{clock}, @{$o->{files}});
|
||||
}
|
||||
}
|
||||
|
||||
sub output_result {
|
||||
my ($clockid, @files) = @_;
|
||||
|
||||
# Uncomment for debugging watchman output
|
||||
# open (my $fh, ">", ".git/watchman-output.out");
|
||||
# binmode $fh, ":utf8";
|
||||
# print $fh "$clockid\n@files\n";
|
||||
# close $fh;
|
||||
|
||||
binmode STDOUT, ":utf8";
|
||||
print $clockid;
|
||||
print "\0";
|
||||
local $, = "\0";
|
||||
print @files;
|
||||
}
|
||||
|
||||
sub watchman_clock {
|
||||
my $response = qx/watchman clock "$git_work_tree"/;
|
||||
die "Failed to get clock id on '$git_work_tree'.\n" .
|
||||
"Falling back to scanning...\n" if $? != 0;
|
||||
|
||||
return $json_pkg->new->utf8->decode($response);
|
||||
}
|
||||
|
||||
sub watchman_query {
|
||||
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
|
||||
or die "open2() failed: $!\n" .
|
||||
"Falling back to scanning...\n";
|
||||
|
||||
# In the query expression below we're asking for names of files that
|
||||
# changed since $last_update_token but not from the .git folder.
|
||||
#
|
||||
# To accomplish this, we're using the "since" generator to use the
|
||||
# recency index to select candidate nodes and "fields" to limit the
|
||||
# output to file names only. Then we're using the "expression" term to
|
||||
# further constrain the results.
|
||||
my $last_update_line = "";
|
||||
if (substr($last_update_token, 0, 1) eq "c") {
|
||||
$last_update_token = "\"$last_update_token\"";
|
||||
$last_update_line = qq[\n"since": $last_update_token,];
|
||||
}
|
||||
my $query = <<" END";
|
||||
["query", "$git_work_tree", {$last_update_line
|
||||
"fields": ["name"],
|
||||
"expression": ["not", ["dirname", ".git"]]
|
||||
}]
|
||||
END
|
||||
|
||||
# Uncomment for debugging the watchman query
|
||||
# open (my $fh, ">", ".git/watchman-query.json");
|
||||
# print $fh $query;
|
||||
# close $fh;
|
||||
|
||||
print CHLD_IN $query;
|
||||
close CHLD_IN;
|
||||
my $response = do {local $/; <CHLD_OUT>};
|
||||
|
||||
# Uncomment for debugging the watch response
|
||||
# open ($fh, ">", ".git/watchman-response.json");
|
||||
# print $fh $response;
|
||||
# close $fh;
|
||||
|
||||
die "Watchman: command returned no output.\n" .
|
||||
"Falling back to scanning...\n" if $response eq "";
|
||||
die "Watchman: command returned invalid output: $response\n" .
|
||||
"Falling back to scanning...\n" unless $response =~ /^\{/;
|
||||
|
||||
return $json_pkg->new->utf8->decode($response);
|
||||
}
|
||||
|
||||
sub is_work_tree_watched {
|
||||
my ($output) = @_;
|
||||
my $error = $output->{error};
|
||||
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
|
||||
$retry--;
|
||||
my $response = qx/watchman watch "$git_work_tree"/;
|
||||
die "Failed to make watchman watch '$git_work_tree'.\n" .
|
||||
"Falling back to scanning...\n" if $? != 0;
|
||||
$output = $json_pkg->new->utf8->decode($response);
|
||||
$error = $output->{error};
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
# Uncomment for debugging watchman output
|
||||
# open (my $fh, ">", ".git/watchman-output.out");
|
||||
# close $fh;
|
||||
|
||||
# Watchman will always return all files on the first query so
|
||||
# return the fast "everything is dirty" flag to git and do the
|
||||
# Watchman query just to get it over with now so we won't pay
|
||||
# the cost in git to look up each individual file.
|
||||
my $o = watchman_clock();
|
||||
$error = $output->{error};
|
||||
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
output_result($o->{clock}, ("/"));
|
||||
$last_update_token = $o->{clock};
|
||||
|
||||
eval { launch_watchman() };
|
||||
return 0;
|
||||
}
|
||||
|
||||
die "Watchman: $error.\n" .
|
||||
"Falling back to scanning...\n" if $error;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub get_working_dir {
|
||||
my $working_dir;
|
||||
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
|
||||
$working_dir = Win32::GetCwd();
|
||||
$working_dir =~ tr/\\/\//;
|
||||
} else {
|
||||
require Cwd;
|
||||
$working_dir = Cwd::cwd();
|
||||
}
|
||||
|
||||
return $working_dir;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to prepare a packed repository for use over
|
||||
# dumb transports.
|
||||
#
|
||||
# To enable this hook, rename this file to "post-update".
|
||||
|
||||
exec git update-server-info
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed
|
||||
# by applypatch from an e-mail message.
|
||||
#
|
||||
# The hook should exit with non-zero status after issuing an
|
||||
# appropriate message if it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-applypatch".
|
||||
|
||||
. git-sh-setup
|
||||
precommit="$(git rev-parse --git-path hooks/pre-commit)"
|
||||
test -x "$precommit" && exec "$precommit" ${1+"$@"}
|
||||
:
|
||||
49
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-commit.sample
Normal file
49
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-commit.sample
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-commit".
|
||||
|
||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||
then
|
||||
against=HEAD
|
||||
else
|
||||
# Initial commit: diff against an empty tree object
|
||||
against=$(git hash-object -t tree /dev/null)
|
||||
fi
|
||||
|
||||
# If you want to allow non-ASCII filenames set this variable to true.
|
||||
allownonascii=$(git config --type=bool hooks.allownonascii)
|
||||
|
||||
# Redirect output to stderr.
|
||||
exec 1>&2
|
||||
|
||||
# Cross platform projects tend to avoid non-ASCII filenames; prevent
|
||||
# them from being added to the repository. We exploit the fact that the
|
||||
# printable range starts at the space character and ends with tilde.
|
||||
if [ "$allownonascii" != "true" ] &&
|
||||
# Note that the use of brackets around a tr range is ok here, (it's
|
||||
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
||||
# the square bracket bytes happen to fall in the designated range.
|
||||
test $(git diff --cached --name-only --diff-filter=A -z $against |
|
||||
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
|
||||
then
|
||||
cat <<\EOF
|
||||
Error: Attempt to add a non-ASCII file name.
|
||||
|
||||
This can cause problems if you want to work with people on other platforms.
|
||||
|
||||
To be portable it is advisable to rename the file.
|
||||
|
||||
If you know what you are doing you can disable this check using:
|
||||
|
||||
git config hooks.allownonascii true
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If there are whitespace errors, print the offending file names and fail.
|
||||
exec git diff-index --check --cached $against --
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git merge" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message to
|
||||
# stderr if it wants to stop the merge commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-merge-commit".
|
||||
|
||||
. git-sh-setup
|
||||
test -x "$GIT_DIR/hooks/pre-commit" &&
|
||||
exec "$GIT_DIR/hooks/pre-commit"
|
||||
:
|
||||
53
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-push.sample
Normal file
53
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-push.sample
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
# An example hook script to verify what is about to be pushed. Called by "git
|
||||
# push" after it has checked the remote status, but before anything has been
|
||||
# pushed. If this script exits with a non-zero status nothing will be pushed.
|
||||
#
|
||||
# This hook is called with the following parameters:
|
||||
#
|
||||
# $1 -- Name of the remote to which the push is being done
|
||||
# $2 -- URL to which the push is being done
|
||||
#
|
||||
# If pushing without using a named remote those arguments will be equal.
|
||||
#
|
||||
# Information about the commits which are being pushed is supplied as lines to
|
||||
# the standard input in the form:
|
||||
#
|
||||
# <local ref> <local oid> <remote ref> <remote oid>
|
||||
#
|
||||
# This sample shows how to prevent push of commits where the log message starts
|
||||
# with "WIP" (work in progress).
|
||||
|
||||
remote="$1"
|
||||
url="$2"
|
||||
|
||||
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||
|
||||
while read local_ref local_oid remote_ref remote_oid
|
||||
do
|
||||
if test "$local_oid" = "$zero"
|
||||
then
|
||||
# Handle delete
|
||||
:
|
||||
else
|
||||
if test "$remote_oid" = "$zero"
|
||||
then
|
||||
# New branch, examine all commits
|
||||
range="$local_oid"
|
||||
else
|
||||
# Update to existing branch, examine new commits
|
||||
range="$remote_oid..$local_oid"
|
||||
fi
|
||||
|
||||
# Check for WIP commit
|
||||
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
|
||||
if test -n "$commit"
|
||||
then
|
||||
echo >&2 "Found WIP commit in $local_ref, not pushing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
169
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-rebase.sample
Normal file
169
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-rebase.sample
Normal file
@@ -0,0 +1,169 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2006, 2008 Junio C Hamano
|
||||
#
|
||||
# The "pre-rebase" hook is run just before "git rebase" starts doing
|
||||
# its job, and can prevent the command from running by exiting with
|
||||
# non-zero status.
|
||||
#
|
||||
# The hook is called with the following parameters:
|
||||
#
|
||||
# $1 -- the upstream the series was forked from.
|
||||
# $2 -- the branch being rebased (or empty when rebasing the current branch).
|
||||
#
|
||||
# This sample shows how to prevent topic branches that are already
|
||||
# merged to 'next' branch from getting rebased, because allowing it
|
||||
# would result in rebasing already published history.
|
||||
|
||||
publish=next
|
||||
basebranch="$1"
|
||||
if test "$#" = 2
|
||||
then
|
||||
topic="refs/heads/$2"
|
||||
else
|
||||
topic=`git symbolic-ref HEAD` ||
|
||||
exit 0 ;# we do not interrupt rebasing detached HEAD
|
||||
fi
|
||||
|
||||
case "$topic" in
|
||||
refs/heads/??/*)
|
||||
;;
|
||||
*)
|
||||
exit 0 ;# we do not interrupt others.
|
||||
;;
|
||||
esac
|
||||
|
||||
# Now we are dealing with a topic branch being rebased
|
||||
# on top of master. Is it OK to rebase it?
|
||||
|
||||
# Does the topic really exist?
|
||||
git show-ref -q "$topic" || {
|
||||
echo >&2 "No such branch $topic"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Is topic fully merged to master?
|
||||
not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
|
||||
if test -z "$not_in_master"
|
||||
then
|
||||
echo >&2 "$topic is fully merged to master; better remove it."
|
||||
exit 1 ;# we could allow it, but there is no point.
|
||||
fi
|
||||
|
||||
# Is topic ever merged to next? If so you should not be rebasing it.
|
||||
only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
|
||||
only_next_2=`git rev-list ^master ${publish} | sort`
|
||||
if test "$only_next_1" = "$only_next_2"
|
||||
then
|
||||
not_in_topic=`git rev-list "^$topic" master`
|
||||
if test -z "$not_in_topic"
|
||||
then
|
||||
echo >&2 "$topic is already up to date with master"
|
||||
exit 1 ;# we could allow it, but there is no point.
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
else
|
||||
not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
|
||||
/usr/bin/perl -e '
|
||||
my $topic = $ARGV[0];
|
||||
my $msg = "* $topic has commits already merged to public branch:\n";
|
||||
my (%not_in_next) = map {
|
||||
/^([0-9a-f]+) /;
|
||||
($1 => 1);
|
||||
} split(/\n/, $ARGV[1]);
|
||||
for my $elem (map {
|
||||
/^([0-9a-f]+) (.*)$/;
|
||||
[$1 => $2];
|
||||
} split(/\n/, $ARGV[2])) {
|
||||
if (!exists $not_in_next{$elem->[0]}) {
|
||||
if ($msg) {
|
||||
print STDERR $msg;
|
||||
undef $msg;
|
||||
}
|
||||
print STDERR " $elem->[1]\n";
|
||||
}
|
||||
}
|
||||
' "$topic" "$not_in_next" "$not_in_master"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
<<\DOC_END
|
||||
|
||||
This sample hook safeguards topic branches that have been
|
||||
published from being rewound.
|
||||
|
||||
The workflow assumed here is:
|
||||
|
||||
* Once a topic branch forks from "master", "master" is never
|
||||
merged into it again (either directly or indirectly).
|
||||
|
||||
* Once a topic branch is fully cooked and merged into "master",
|
||||
it is deleted. If you need to build on top of it to correct
|
||||
earlier mistakes, a new topic branch is created by forking at
|
||||
the tip of the "master". This is not strictly necessary, but
|
||||
it makes it easier to keep your history simple.
|
||||
|
||||
* Whenever you need to test or publish your changes to topic
|
||||
branches, merge them into "next" branch.
|
||||
|
||||
The script, being an example, hardcodes the publish branch name
|
||||
to be "next", but it is trivial to make it configurable via
|
||||
$GIT_DIR/config mechanism.
|
||||
|
||||
With this workflow, you would want to know:
|
||||
|
||||
(1) ... if a topic branch has ever been merged to "next". Young
|
||||
topic branches can have stupid mistakes you would rather
|
||||
clean up before publishing, and things that have not been
|
||||
merged into other branches can be easily rebased without
|
||||
affecting other people. But once it is published, you would
|
||||
not want to rewind it.
|
||||
|
||||
(2) ... if a topic branch has been fully merged to "master".
|
||||
Then you can delete it. More importantly, you should not
|
||||
build on top of it -- other people may already want to
|
||||
change things related to the topic as patches against your
|
||||
"master", so if you need further changes, it is better to
|
||||
fork the topic (perhaps with the same name) afresh from the
|
||||
tip of "master".
|
||||
|
||||
Let's look at this example:
|
||||
|
||||
o---o---o---o---o---o---o---o---o---o "next"
|
||||
/ / / /
|
||||
/ a---a---b A / /
|
||||
/ / / /
|
||||
/ / c---c---c---c B /
|
||||
/ / / \ /
|
||||
/ / / b---b C \ /
|
||||
/ / / / \ /
|
||||
---o---o---o---o---o---o---o---o---o---o---o "master"
|
||||
|
||||
|
||||
A, B and C are topic branches.
|
||||
|
||||
* A has one fix since it was merged up to "next".
|
||||
|
||||
* B has finished. It has been fully merged up to "master" and "next",
|
||||
and is ready to be deleted.
|
||||
|
||||
* C has not merged to "next" at all.
|
||||
|
||||
We would want to allow C to be rebased, refuse A, and encourage
|
||||
B to be deleted.
|
||||
|
||||
To compute (1):
|
||||
|
||||
git rev-list ^master ^topic next
|
||||
git rev-list ^master next
|
||||
|
||||
if these match, topic has not merged in next at all.
|
||||
|
||||
To compute (2):
|
||||
|
||||
git rev-list master..topic
|
||||
|
||||
if this is empty, it is fully merged to "master".
|
||||
|
||||
DOC_END
|
||||
24
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-receive.sample
Normal file
24
dot_vim/plugged/ctrlp.vim/dot_git/hooks/pre-receive.sample
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to make use of push options.
|
||||
# The example simply echoes all push options that start with 'echoback='
|
||||
# and rejects all pushes when the "reject" push option is used.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-receive".
|
||||
|
||||
if test -n "$GIT_PUSH_OPTION_COUNT"
|
||||
then
|
||||
i=0
|
||||
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
|
||||
do
|
||||
eval "value=\$GIT_PUSH_OPTION_$i"
|
||||
case "$value" in
|
||||
echoback=*)
|
||||
echo "echo from the pre-receive-hook: ${value#*=}" >&2
|
||||
;;
|
||||
reject)
|
||||
exit 1
|
||||
esac
|
||||
i=$((i + 1))
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to prepare the commit log message.
|
||||
# Called by "git commit" with the name of the file that has the
|
||||
# commit message, followed by the description of the commit
|
||||
# message's source. The hook's purpose is to edit the commit
|
||||
# message file. If the hook fails with a non-zero status,
|
||||
# the commit is aborted.
|
||||
#
|
||||
# To enable this hook, rename this file to "prepare-commit-msg".
|
||||
|
||||
# This hook includes three examples. The first one removes the
|
||||
# "# Please enter the commit message..." help message.
|
||||
#
|
||||
# The second includes the output of "git diff --name-status -r"
|
||||
# into the message, just before the "git status" output. It is
|
||||
# commented because it doesn't cope with --amend or with squashed
|
||||
# commits.
|
||||
#
|
||||
# The third example adds a Signed-off-by line to the message, that can
|
||||
# still be edited. This is rarely a good idea.
|
||||
|
||||
COMMIT_MSG_FILE=$1
|
||||
COMMIT_SOURCE=$2
|
||||
SHA1=$3
|
||||
|
||||
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
|
||||
|
||||
# case "$COMMIT_SOURCE,$SHA1" in
|
||||
# ,|template,)
|
||||
# /usr/bin/perl -i.bak -pe '
|
||||
# print "\n" . `git diff --cached --name-status -r`
|
||||
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
|
||||
# *) ;;
|
||||
# esac
|
||||
|
||||
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
|
||||
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
|
||||
# if test -z "$COMMIT_SOURCE"
|
||||
# then
|
||||
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
|
||||
# fi
|
||||
@@ -0,0 +1,78 @@
|
||||
#!/bin/sh
|
||||
|
||||
# An example hook script to update a checked-out tree on a git push.
|
||||
#
|
||||
# This hook is invoked by git-receive-pack(1) when it reacts to git
|
||||
# push and updates reference(s) in its repository, and when the push
|
||||
# tries to update the branch that is currently checked out and the
|
||||
# receive.denyCurrentBranch configuration variable is set to
|
||||
# updateInstead.
|
||||
#
|
||||
# By default, such a push is refused if the working tree and the index
|
||||
# of the remote repository has any difference from the currently
|
||||
# checked out commit; when both the working tree and the index match
|
||||
# the current commit, they are updated to match the newly pushed tip
|
||||
# of the branch. This hook is to be used to override the default
|
||||
# behaviour; however the code below reimplements the default behaviour
|
||||
# as a starting point for convenient modification.
|
||||
#
|
||||
# The hook receives the commit with which the tip of the current
|
||||
# branch is going to be updated:
|
||||
commit=$1
|
||||
|
||||
# It can exit with a non-zero status to refuse the push (when it does
|
||||
# so, it must not modify the index or the working tree).
|
||||
die () {
|
||||
echo >&2 "$*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Or it can make any necessary changes to the working tree and to the
|
||||
# index to bring them to the desired state when the tip of the current
|
||||
# branch is updated to the new commit, and exit with a zero status.
|
||||
#
|
||||
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
|
||||
# in order to emulate git fetch that is run in the reverse direction
|
||||
# with git push, as the two-tree form of git read-tree -u -m is
|
||||
# essentially the same as git switch or git checkout that switches
|
||||
# branches while keeping the local changes in the working tree that do
|
||||
# not interfere with the difference between the branches.
|
||||
|
||||
# The below is a more-or-less exact translation to shell of the C code
|
||||
# for the default behaviour for git's push-to-checkout hook defined in
|
||||
# the push_to_deploy() function in builtin/receive-pack.c.
|
||||
#
|
||||
# Note that the hook will be executed from the repository directory,
|
||||
# not from the working tree, so if you want to perform operations on
|
||||
# the working tree, you will have to adapt your code accordingly, e.g.
|
||||
# by adding "cd .." or using relative paths.
|
||||
|
||||
if ! git update-index -q --ignore-submodules --refresh
|
||||
then
|
||||
die "Up-to-date check failed"
|
||||
fi
|
||||
|
||||
if ! git diff-files --quiet --ignore-submodules --
|
||||
then
|
||||
die "Working directory has unstaged changes"
|
||||
fi
|
||||
|
||||
# This is a rough translation of:
|
||||
#
|
||||
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
|
||||
if git cat-file -e HEAD 2>/dev/null
|
||||
then
|
||||
head=HEAD
|
||||
else
|
||||
head=$(git hash-object -t tree --stdin </dev/null)
|
||||
fi
|
||||
|
||||
if ! git diff-index --quiet --cached --ignore-submodules $head --
|
||||
then
|
||||
die "Working directory has staged changes"
|
||||
fi
|
||||
|
||||
if ! git read-tree -u -m "$commit"
|
||||
then
|
||||
die "Could not update working tree to new HEAD"
|
||||
fi
|
||||
128
dot_vim/plugged/ctrlp.vim/dot_git/hooks/update.sample
Normal file
128
dot_vim/plugged/ctrlp.vim/dot_git/hooks/update.sample
Normal file
@@ -0,0 +1,128 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to block unannotated tags from entering.
|
||||
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
|
||||
#
|
||||
# To enable this hook, rename this file to "update".
|
||||
#
|
||||
# Config
|
||||
# ------
|
||||
# hooks.allowunannotated
|
||||
# This boolean sets whether unannotated tags will be allowed into the
|
||||
# repository. By default they won't be.
|
||||
# hooks.allowdeletetag
|
||||
# This boolean sets whether deleting tags will be allowed in the
|
||||
# repository. By default they won't be.
|
||||
# hooks.allowmodifytag
|
||||
# This boolean sets whether a tag may be modified after creation. By default
|
||||
# it won't be.
|
||||
# hooks.allowdeletebranch
|
||||
# This boolean sets whether deleting branches will be allowed in the
|
||||
# repository. By default they won't be.
|
||||
# hooks.denycreatebranch
|
||||
# This boolean sets whether remotely creating branches will be denied
|
||||
# in the repository. By default this is allowed.
|
||||
#
|
||||
|
||||
# --- Command line
|
||||
refname="$1"
|
||||
oldrev="$2"
|
||||
newrev="$3"
|
||||
|
||||
# --- Safety check
|
||||
if [ -z "$GIT_DIR" ]; then
|
||||
echo "Don't run this script from the command line." >&2
|
||||
echo " (if you want, you could supply GIT_DIR then run" >&2
|
||||
echo " $0 <ref> <oldrev> <newrev>)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
|
||||
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- Config
|
||||
allowunannotated=$(git config --type=bool hooks.allowunannotated)
|
||||
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
|
||||
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
|
||||
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
|
||||
allowmodifytag=$(git config --type=bool hooks.allowmodifytag)
|
||||
|
||||
# check for no description
|
||||
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
|
||||
case "$projectdesc" in
|
||||
"Unnamed repository"* | "")
|
||||
echo "*** Project description file hasn't been set" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Check types
|
||||
# if $newrev is 0000...0000, it's a commit to delete a ref.
|
||||
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
|
||||
if [ "$newrev" = "$zero" ]; then
|
||||
newrev_type=delete
|
||||
else
|
||||
newrev_type=$(git cat-file -t $newrev)
|
||||
fi
|
||||
|
||||
case "$refname","$newrev_type" in
|
||||
refs/tags/*,commit)
|
||||
# un-annotated tag
|
||||
short_refname=${refname##refs/tags/}
|
||||
if [ "$allowunannotated" != "true" ]; then
|
||||
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
|
||||
echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/tags/*,delete)
|
||||
# delete tag
|
||||
if [ "$allowdeletetag" != "true" ]; then
|
||||
echo "*** Deleting a tag is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/tags/*,tag)
|
||||
# annotated tag
|
||||
if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
|
||||
then
|
||||
echo "*** Tag '$refname' already exists." >&2
|
||||
echo "*** Modifying a tag is not allowed in this repository." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/heads/*,commit)
|
||||
# branch
|
||||
if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
|
||||
echo "*** Creating a branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/heads/*,delete)
|
||||
# delete branch
|
||||
if [ "$allowdeletebranch" != "true" ]; then
|
||||
echo "*** Deleting a branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
refs/remotes/*,commit)
|
||||
# tracking branch
|
||||
;;
|
||||
refs/remotes/*,delete)
|
||||
# delete tracking branch
|
||||
if [ "$allowdeletebranch" != "true" ]; then
|
||||
echo "*** Deleting a tracking branch is not allowed in this repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Anything else (is there anything else?)
|
||||
echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Finished
|
||||
exit 0
|
||||
BIN
dot_vim/plugged/ctrlp.vim/dot_git/index
Normal file
BIN
dot_vim/plugged/ctrlp.vim/dot_git/index
Normal file
Binary file not shown.
6
dot_vim/plugged/ctrlp.vim/dot_git/info/exclude
Normal file
6
dot_vim/plugged/ctrlp.vim/dot_git/info/exclude
Normal file
@@ -0,0 +1,6 @@
|
||||
# git ls-files --others --exclude-from=.git/info/exclude
|
||||
# Lines that start with '#' are comments.
|
||||
# For a project mostly in C, the following would be a good set of
|
||||
# exclude patterns (uncomment them if you want to use them):
|
||||
# *.[oa]
|
||||
# *~
|
||||
2
dot_vim/plugged/ctrlp.vim/dot_git/logs/HEAD
Normal file
2
dot_vim/plugged/ctrlp.vim/dot_git/logs/HEAD
Normal file
@@ -0,0 +1,2 @@
|
||||
0000000000000000000000000000000000000000 8b4a9523632049b3b373de1233bef346073b8982 LinlyBoi <libkyy@e.email> 1673460162 +0200 clone: from https://github.com/ctrlpvim/ctrlp.vim.git
|
||||
8b4a9523632049b3b373de1233bef346073b8982 8b4a9523632049b3b373de1233bef346073b8982 LinlyBoi <libkyy@e.email> 1673460166 +0200 checkout: moving from master to master
|
||||
1
dot_vim/plugged/ctrlp.vim/dot_git/logs/refs/heads/master
Normal file
1
dot_vim/plugged/ctrlp.vim/dot_git/logs/refs/heads/master
Normal file
@@ -0,0 +1 @@
|
||||
0000000000000000000000000000000000000000 8b4a9523632049b3b373de1233bef346073b8982 LinlyBoi <libkyy@e.email> 1673460162 +0200 clone: from https://github.com/ctrlpvim/ctrlp.vim.git
|
||||
@@ -0,0 +1 @@
|
||||
0000000000000000000000000000000000000000 8b4a9523632049b3b373de1233bef346073b8982 LinlyBoi <libkyy@e.email> 1673460162 +0200 clone: from https://github.com/ctrlpvim/ctrlp.vim.git
|
||||
Binary file not shown.
Binary file not shown.
42
dot_vim/plugged/ctrlp.vim/dot_git/packed-refs
Normal file
42
dot_vim/plugged/ctrlp.vim/dot_git/packed-refs
Normal file
@@ -0,0 +1,42 @@
|
||||
# pack-refs with: peeled fully-peeled sorted
|
||||
7607f8234c4e9cd217a38d11ec69e1ef7d446dfe refs/remotes/origin/core-types
|
||||
408b68fd5b2ab548dc9f4dca22b0485438388581 refs/remotes/origin/correct-window
|
||||
830fbc8845fedb40ccc03c94f183a87e41aec695 refs/remotes/origin/extensions
|
||||
d220b9cf1bbcba4c3525532ec15c7e3dcf80eafd refs/remotes/origin/fix-138
|
||||
05bc7b676ced4d29cd0ca4c6a6688b55e97458f7 refs/remotes/origin/fix-416
|
||||
3acd9e8cce83fffbaf0cc427bf9a3e721d35d07d refs/remotes/origin/fix-421
|
||||
352b628d0ac18a17c6e4fed2f5c5b0b2c69b7970 refs/remotes/origin/fix-587
|
||||
77702c010a5b9146400818984d5ef6f1a9fdcb87 refs/remotes/origin/fix-broken-highlight-for-undo
|
||||
5c8cbb683b4b2e3c4dd495f08d1d6757dd40995b refs/remotes/origin/fix-buf-matching-by-fname
|
||||
e346ae1e374b3e7a2baa3da5eb1003618aa39ee3 refs/remotes/origin/fix-getextvar
|
||||
7cad1dc86b48a2027fff3f85efbe877ddcfea487 refs/remotes/origin/fix-switch_buffer
|
||||
7b9d8455e7f4ff9f975e38f85698bfa9c9be51b4 refs/remotes/origin/fix314
|
||||
920928a4ea7be92b597d15fb87795e0ed73f9493 refs/remotes/origin/fix438
|
||||
5dbc6c488a93b645c2f1f65d79282ea925554831 refs/remotes/origin/gh-pages
|
||||
8b4a9523632049b3b373de1233bef346073b8982 refs/remotes/origin/master
|
||||
dfd46f13950ec24dccf382af9a41fcdb282aef89 refs/remotes/origin/matcher-color
|
||||
eb94567a98e23254eedd5d497551b33976295233 refs/remotes/origin/readdir
|
||||
c95106192a9de3879292a570d7b8b9486075738b refs/remotes/origin/unescape-path
|
||||
1a2c3ee8d2fd412573a3adbff0e2e030b8128189 refs/tags/1.5
|
||||
1ebf85d96c01378e338917b870ca635b7b3dcca1 refs/tags/1.5.1
|
||||
f3edbfbe567891c0677d6008225084b151028fc2 refs/tags/1.5.3
|
||||
8d99466502b40d7a5270abe6d763cf59383f4683 refs/tags/1.5.4
|
||||
b44a699d2284848a384b803509662ab5ea948d36 refs/tags/1.5.5
|
||||
0319703514482feaca31faa4f278a2a9370f9aaa refs/tags/1.5.6
|
||||
d24ed9c5a9fdd68c9044d1139acd1ed7bf149cb6 refs/tags/1.5.7
|
||||
ae6f1592b4a7f6ebe5c3cc7bfbbfdc0667d6baa0 refs/tags/1.5.8
|
||||
b6764d7c0a821de174a8cad2f86669654a1be886 refs/tags/1.5.9
|
||||
0af1cdc7917813bbe846be7faa9dfbc55156c030 refs/tags/1.6.0
|
||||
052b48bff68b36366c30fdaecc16106d776ec5b1 refs/tags/1.6.1
|
||||
ef9e072c5fcd57f6fcebb39405a677b7aae48e8e refs/tags/1.6.2
|
||||
b1a8c3d21e69b972032c65bf89e72ec7758f852a refs/tags/1.6.3
|
||||
64dca5ec7961cbd4a5a7da460890e70ae8716db4 refs/tags/1.6.4
|
||||
ea4c6021fc84ce023ce2f530579ca6a4dfb3b24d refs/tags/1.6.5
|
||||
c4fe3045653877518ddbe776a9cb7cbd4fdd0bc8 refs/tags/1.7.4
|
||||
194987f331b647f195c6666607927250263b9f0c refs/tags/1.7.5
|
||||
e61e7d5b801ade5fcefeab3aca75c1f37d54bdf1 refs/tags/1.7.6
|
||||
2826589dc60af4cf54544e5505cbe9f71f70f027 refs/tags/1.7.7
|
||||
4d5b39c0cf005bc48e6d5916e631c0b444ebc419 refs/tags/1.78
|
||||
c1646e3c28d75bcc834af4836f4c6e12296ba891 refs/tags/1.79
|
||||
2868678a987834563bbc384763135462c2423eb8 refs/tags/1.80
|
||||
971c4d41880b72dbbf1620b3ad91418a6a6f6b9c refs/tags/1.81
|
||||
1
dot_vim/plugged/ctrlp.vim/dot_git/refs/heads/master
Normal file
1
dot_vim/plugged/ctrlp.vim/dot_git/refs/heads/master
Normal file
@@ -0,0 +1 @@
|
||||
8b4a9523632049b3b373de1233bef346073b8982
|
||||
@@ -0,0 +1 @@
|
||||
ref: refs/remotes/origin/master
|
||||
0
dot_vim/plugged/ctrlp.vim/dot_git/refs/tags/.keep
Normal file
0
dot_vim/plugged/ctrlp.vim/dot_git/refs/tags/.keep
Normal file
41
dot_vim/plugged/ctrlp.vim/dot_git/shallow
Normal file
41
dot_vim/plugged/ctrlp.vim/dot_git/shallow
Normal file
@@ -0,0 +1,41 @@
|
||||
0319703514482feaca31faa4f278a2a9370f9aaa
|
||||
052b48bff68b36366c30fdaecc16106d776ec5b1
|
||||
05bc7b676ced4d29cd0ca4c6a6688b55e97458f7
|
||||
0af1cdc7917813bbe846be7faa9dfbc55156c030
|
||||
194987f331b647f195c6666607927250263b9f0c
|
||||
1a2c3ee8d2fd412573a3adbff0e2e030b8128189
|
||||
1ebf85d96c01378e338917b870ca635b7b3dcca1
|
||||
2826589dc60af4cf54544e5505cbe9f71f70f027
|
||||
2868678a987834563bbc384763135462c2423eb8
|
||||
352b628d0ac18a17c6e4fed2f5c5b0b2c69b7970
|
||||
3acd9e8cce83fffbaf0cc427bf9a3e721d35d07d
|
||||
408b68fd5b2ab548dc9f4dca22b0485438388581
|
||||
4d5b39c0cf005bc48e6d5916e631c0b444ebc419
|
||||
5c8cbb683b4b2e3c4dd495f08d1d6757dd40995b
|
||||
5dbc6c488a93b645c2f1f65d79282ea925554831
|
||||
64dca5ec7961cbd4a5a7da460890e70ae8716db4
|
||||
7607f8234c4e9cd217a38d11ec69e1ef7d446dfe
|
||||
77702c010a5b9146400818984d5ef6f1a9fdcb87
|
||||
7b9d8455e7f4ff9f975e38f85698bfa9c9be51b4
|
||||
7cad1dc86b48a2027fff3f85efbe877ddcfea487
|
||||
830fbc8845fedb40ccc03c94f183a87e41aec695
|
||||
8b4a9523632049b3b373de1233bef346073b8982
|
||||
8d99466502b40d7a5270abe6d763cf59383f4683
|
||||
920928a4ea7be92b597d15fb87795e0ed73f9493
|
||||
971c4d41880b72dbbf1620b3ad91418a6a6f6b9c
|
||||
ae6f1592b4a7f6ebe5c3cc7bfbbfdc0667d6baa0
|
||||
b1a8c3d21e69b972032c65bf89e72ec7758f852a
|
||||
b44a699d2284848a384b803509662ab5ea948d36
|
||||
b6764d7c0a821de174a8cad2f86669654a1be886
|
||||
c1646e3c28d75bcc834af4836f4c6e12296ba891
|
||||
c4fe3045653877518ddbe776a9cb7cbd4fdd0bc8
|
||||
c95106192a9de3879292a570d7b8b9486075738b
|
||||
d220b9cf1bbcba4c3525532ec15c7e3dcf80eafd
|
||||
d24ed9c5a9fdd68c9044d1139acd1ed7bf149cb6
|
||||
dfd46f13950ec24dccf382af9a41fcdb282aef89
|
||||
e346ae1e374b3e7a2baa3da5eb1003618aa39ee3
|
||||
e61e7d5b801ade5fcefeab3aca75c1f37d54bdf1
|
||||
ea4c6021fc84ce023ce2f530579ca6a4dfb3b24d
|
||||
eb94567a98e23254eedd5d497551b33976295233
|
||||
ef9e072c5fcd57f6fcebb39405a677b7aae48e8e
|
||||
f3edbfbe567891c0677d6008225084b151028fc2
|
||||
13
dot_vim/plugged/ctrlp.vim/dot_github/FUNDING.yml
Normal file
13
dot_vim/plugged/ctrlp.vim/dot_github/FUNDING.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: ctrlpvim # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
7
dot_vim/plugged/ctrlp.vim/dot_gitignore
Normal file
7
dot_vim/plugged/ctrlp.vim/dot_gitignore
Normal file
@@ -0,0 +1,7 @@
|
||||
*.markdown
|
||||
*.zip
|
||||
note.txt
|
||||
tags
|
||||
tags-cn
|
||||
.hg*
|
||||
tmp/*
|
||||
72
dot_vim/plugged/ctrlp.vim/plugin/ctrlp.vim
Normal file
72
dot_vim/plugged/ctrlp.vim/plugin/ctrlp.vim
Normal file
@@ -0,0 +1,72 @@
|
||||
" =============================================================================
|
||||
" File: plugin/ctrlp.vim
|
||||
" Description: Fuzzy file, buffer, mru, tag, etc finder.
|
||||
" Author: Kien Nguyen <github.com/kien>
|
||||
" =============================================================================
|
||||
" GetLatestVimScripts: 3736 1 :AutoInstall: ctrlp.zip
|
||||
|
||||
if ( exists('g:loaded_ctrlp') && g:loaded_ctrlp ) || v:version < 700 || &cp
|
||||
fini
|
||||
en
|
||||
let g:loaded_ctrlp = 1
|
||||
|
||||
let [g:ctrlp_lines, g:ctrlp_allfiles, g:ctrlp_alltags, g:ctrlp_alldirs,
|
||||
\ g:ctrlp_allmixes, g:ctrlp_buftags, g:ctrlp_ext_vars, g:ctrlp_builtins]
|
||||
\ = [[], [], [], [], {}, {}, [], 2]
|
||||
|
||||
if !exists('g:ctrlp_map') | let g:ctrlp_map = '<c-p>' | en
|
||||
if !exists('g:ctrlp_cmd') | let g:ctrlp_cmd = 'CtrlP' | en
|
||||
|
||||
com! -n=? -com=dir CtrlP cal ctrlp#init(0, { 'dir': <q-args> })
|
||||
com! -n=? -com=dir CtrlPMRUFiles cal ctrlp#init('mru', { 'dir': <q-args> })
|
||||
|
||||
com! -bar CtrlPBuffer cal ctrlp#init('buf')
|
||||
com! -n=? CtrlPLastMode cal ctrlp#init(-1, { 'args': <q-args> })
|
||||
|
||||
com! -bar CtrlPClearCache cal ctrlp#clr()
|
||||
com! -bar CtrlPClearAllCaches cal ctrlp#clra()
|
||||
|
||||
com! -bar ClearCtrlPCache cal ctrlp#clr()
|
||||
com! -bar ClearAllCtrlPCaches cal ctrlp#clra()
|
||||
|
||||
com! -bar CtrlPCurWD cal ctrlp#init('fil', { 'mode': '' })
|
||||
com! -bar CtrlPCurFile cal ctrlp#init('fil', { 'mode': 'c' })
|
||||
com! -bar CtrlPRoot cal ctrlp#init('fil', { 'mode': 'r' })
|
||||
|
||||
exe 'nn <silent> <plug>(ctrlp) :<c-u>'.g:ctrlp_cmd.'<cr>'
|
||||
|
||||
if g:ctrlp_map != '' && !hasmapto('<plug>(ctrlp)')
|
||||
exe 'map' g:ctrlp_map '<plug>(ctrlp)'
|
||||
en
|
||||
|
||||
if !exists('g:ctrlp_types') || index(g:ctrlp_types, 'mru') >= 0
|
||||
cal ctrlp#mrufiles#init()
|
||||
en
|
||||
|
||||
com! -bar CtrlPTag cal ctrlp#init(ctrlp#tag#id())
|
||||
com! -bar CtrlPQuickfix cal ctrlp#init(ctrlp#quickfix#id())
|
||||
|
||||
com! -n=? -com=dir CtrlPDir
|
||||
\ cal ctrlp#init(ctrlp#dir#id(), { 'dir': <q-args> })
|
||||
|
||||
com! -n=? -com=buffer CtrlPBufTag
|
||||
\ cal ctrlp#init(ctrlp#buffertag#cmd(0, <q-args>))
|
||||
|
||||
com! -bar CtrlPBufTagAll cal ctrlp#init(ctrlp#buffertag#cmd(1))
|
||||
com! -bar CtrlPRTS cal ctrlp#init(ctrlp#rtscript#id())
|
||||
com! -bar CtrlPUndo cal ctrlp#init(ctrlp#undo#id())
|
||||
|
||||
com! -n=? -com=buffer CtrlPLine
|
||||
\ cal ctrlp#init(ctrlp#line#cmd('buf', <q-args>))
|
||||
|
||||
com! -n=? -com=buffer CtrlPChange
|
||||
\ cal ctrlp#init(ctrlp#changes#cmd('fil', <q-args>))
|
||||
|
||||
com! -bar CtrlPChangeAll cal ctrlp#init(ctrlp#changes#cmd(1))
|
||||
com! -bar CtrlPMixed cal ctrlp#init(ctrlp#mixed#id())
|
||||
com! -bar CtrlPBookmarkDir cal ctrlp#init(ctrlp#bookmarkdir#id())
|
||||
|
||||
com! -n=? -com=dir -bang CtrlPBookmarkDirAdd
|
||||
\ cal ctrlp#call('ctrlp#bookmarkdir#add', '<bang>', <q-args>)
|
||||
|
||||
" vim:ts=2:sw=2:sts=2
|
||||
117
dot_vim/plugged/ctrlp.vim/readme.md
Normal file
117
dot_vim/plugged/ctrlp.vim/readme.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# ctrlp.vim
|
||||
Full path fuzzy __file__, __buffer__, __mru__, __tag__, __...__ finder for Vim.
|
||||
|
||||
* Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
|
||||
* Full support for Vim's regexp as search patterns.
|
||||
* Built-in Most Recently Used (MRU) files monitoring.
|
||||
* Built-in project's root finder.
|
||||
* Open multiple files at once.
|
||||
* Create new files and directories.
|
||||
* [Extensible][2].
|
||||
|
||||
![ctrlp][1]
|
||||
|
||||
## Install
|
||||
|
||||
vim 8+ manages packages all on its own. Installing `ctrlp` is this simple:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.vim/pack/plugins/start
|
||||
git clone --depth=1 https://github.com/ctrlpvim/ctrlp.vim.git ~/.vim/pack/plugins/start/ctrlp
|
||||
```
|
||||
|
||||
Of course you can use your favorite plugin manager or check the [quick installation guide][3] for a primitive installation method.
|
||||
|
||||
## Basic Usage
|
||||
* Run `:CtrlP` or `:CtrlP [starting-directory]` to invoke CtrlP in find file mode.
|
||||
* Run `:CtrlPBuffer` or `:CtrlPMRU` to invoke CtrlP in find buffer or find MRU file mode.
|
||||
* Run `:CtrlPMixed` to search in Files, Buffers and MRU files at the same time.
|
||||
|
||||
Check `:help ctrlp-commands` and `:help ctrlp-extensions` for other commands.
|
||||
|
||||
##### Once CtrlP is open:
|
||||
* Press `<F5>` to purge the cache for the current directory to get new files, remove deleted files and apply new ignore options.
|
||||
* Press `<c-f>` and `<c-b>` to cycle between modes.
|
||||
* Press `<c-d>` to switch to filename only search instead of full path.
|
||||
* Press `<c-r>` to switch to regexp mode.
|
||||
* Use `<c-j>`, `<c-k>` or the arrow keys to navigate the result list.
|
||||
* Use `<c-t>` or `<c-v>`, `<c-x>` to open the selected entry in a new tab or in a new split.
|
||||
* Use `<c-n>`, `<c-p>` to select the next/previous string in the prompt's history.
|
||||
* Use `<c-y>` to create a new file and its parent directories.
|
||||
* Use `<c-z>` to mark/unmark multiple files and `<c-o>` to open them.
|
||||
|
||||
Run `:help ctrlp-mappings` or submit `?` in CtrlP for more mapping help.
|
||||
|
||||
* Submit two or more dots `..` to go up the directory tree by one or multiple levels.
|
||||
* End the input string with a colon `:` followed by a command to execute it on the opening file(s):
|
||||
Use `:25` to jump to line 25.
|
||||
Use `:diffthis` when opening multiple files to run `:diffthis` on the first 4 files.
|
||||
|
||||
## Basic Options
|
||||
* Change the default mapping and the default command to invoke CtrlP:
|
||||
|
||||
```vim
|
||||
let g:ctrlp_map = '<c-p>'
|
||||
let g:ctrlp_cmd = 'CtrlP'
|
||||
```
|
||||
|
||||
* When invoked without an explicit starting directory, CtrlP will set its local working directory according to this variable:
|
||||
|
||||
```vim
|
||||
let g:ctrlp_working_path_mode = 'ra'
|
||||
```
|
||||
|
||||
`'c'` - the directory of the current file.
|
||||
`'a'` - the directory of the current file, unless it is a subdirectory of the cwd
|
||||
`'r'` - the nearest ancestor of the current file that contains one of these directories or files: `.git` `.hg` `.svn` `.bzr` `_darcs`
|
||||
`'w'` - modifier to "r": start search from the cwd instead of the current file's directory
|
||||
`0` or `''` (empty string) - disable this feature.
|
||||
|
||||
If none of the default markers (`.git` `.hg` `.svn` `.bzr` `_darcs`) are present in a project, you can define additional ones with `g:ctrlp_root_markers`:
|
||||
|
||||
```vim
|
||||
let g:ctrlp_root_markers = ['pom.xml', '.p4ignore']
|
||||
```
|
||||
|
||||
If more than one mode is specified, they will be tried in order until a directory is located.
|
||||
|
||||
* If a file is already open, open it again in a new pane instead of switching to the existing pane
|
||||
|
||||
`let g:ctrlp_switch_buffer = 'et'`
|
||||
|
||||
* Exclude files and directories using Vim's `wildignore` and CtrlP's own `g:ctrlp_custom_ignore`. If a custom listing command is being used, exclusions are ignored:
|
||||
|
||||
```vim
|
||||
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
|
||||
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows
|
||||
|
||||
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
|
||||
let g:ctrlp_custom_ignore = {
|
||||
\ 'dir': '\v[\/]\.(git|hg|svn)$',
|
||||
\ 'file': '\v\.(exe|so|dll)$',
|
||||
\ 'link': 'some_bad_symbolic_links',
|
||||
\ }
|
||||
```
|
||||
|
||||
* Use a custom file listing command:
|
||||
|
||||
```vim
|
||||
let g:ctrlp_user_command = 'find %s -type f' " MacOSX/Linux
|
||||
let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d' " Windows
|
||||
```
|
||||
|
||||
* Ignore files in `.gitignore`
|
||||
|
||||
```vim
|
||||
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard']
|
||||
```
|
||||
|
||||
Check `:help ctrlp-options` for other options.
|
||||
|
||||
## License
|
||||
CtrlP is distributed under Vim's [license][4].
|
||||
|
||||
[1]: https://i.imgur.com/aOcwHwt.png
|
||||
[2]: https://github.com/ctrlpvim/ctrlp.vim/tree/extensions
|
||||
[3]: https://ctrlpvim.github.io/ctrlp.vim#installation
|
||||
[4]: http://vimdoc.sourceforge.net/htmldoc/uganda.html
|
||||
Reference in New Issue
Block a user