1" Vim filetype plugin 2" Language: generic git output 3" Maintainer: Tim Pope <[email protected]> 4 5" Only do this when not done yet for this buffer 6if (exists("b:did_ftplugin")) 7 finish 8endif 9let b:did_ftplugin = 1 10 11if !exists('b:git_dir') 12 if expand('%:p') =~# '[\/]\.git[\/]modules[\/]' 13 " Stay out of the way 14 elseif expand('%:p') =~# '\.git\>' 15 let b:git_dir = matchstr(expand('%:p'),'.*\.git\>') 16 elseif $GIT_DIR != '' 17 let b:git_dir = $GIT_DIR 18 endif 19 if (has('win32') || has('win64')) && exists('b:git_dir') 20 let b:git_dir = substitute(b:git_dir,'\\','/','g') 21 endif 22endif 23 24if exists('*shellescape') && exists('b:git_dir') && b:git_dir != '' 25 if b:git_dir =~# '/\.git$' " Not a bare repository 26 let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path 27 endif 28 let &l:path = escape(b:git_dir,'\, ').','.&l:path 29 let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show' 30else 31 setlocal keywordprg=git\ show 32endif 33if has('gui_running') 34 let &l:keywordprg = substitute(&l:keywordprg,'^git\>','git --no-pager','') 35endif 36 37setlocal includeexpr=substitute(v:fname,'^[^/]\\+/','','') 38let b:undo_ftplugin = "setl keywordprg< path< includeexpr<" 39