diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index 5eb0920..b6cccda 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -2273,7 +2273,10 @@ function! s:TempReadPost(file) abort if has_key(s:temp_files, s:cpath(a:file)) let dict = s:temp_files[s:cpath(a:file)] setlocal nobuflisted - if has_key(dict, 'filetype') && dict.filetype !=# &l:filetype + if get(dict, 'filetype', '') ==# 'git' + call fugitive#MapJumps() + endif + if has_key(dict, 'filetype') let &l:filetype = dict.filetype endif setlocal foldmarker=<<<<<<<,>>>>>>> @@ -6117,6 +6120,9 @@ endfunction function! s:StatusCfile(...) abort let tree = s:Tree() + if empty(tree) + return [''] + endif let lead = s:cpath(tree, getcwd()) ? './' : tree . '/' let info = s:StageInfo() let line = getline('.') @@ -6146,6 +6152,9 @@ endfunction function! s:MessageCfile(...) abort let tree = s:Tree() + if empty(tree) + return '' + endif let lead = s:cpath(tree, getcwd()) ? './' : tree . '/' if getline('.') =~# '^.\=\trenamed:.* -> ' return lead . matchstr(getline('.'),' -> \zs.*') @@ -6172,6 +6181,9 @@ function! fugitive#MessageCfile() abort endfunction function! s:cfile() abort + if empty(FugitiveGitDir()) + return [] + endif try let myhash = s:DirRev(@%)[1] if len(myhash) diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index 4fc5906..5fedf49 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -363,27 +363,20 @@ augroup fugitive autocmd FileType netrw call FugitiveDetect(fnamemodify(get(b:, 'netrw_curdir', expand('')), ':p')) autocmd FileType git - \ if len(FugitiveGitDir()) | - \ call fugitive#MapJumps() | - \ call fugitive#MapCfile() | - \ endif + \ call fugitive#MapCfile() autocmd FileType gitcommit - \ if len(FugitiveGitDir()) | - \ call fugitive#MapCfile('fugitive#MessageCfile()') | - \ endif + \ call fugitive#MapCfile('fugitive#MessageCfile()') autocmd FileType git,gitcommit - \ if len(FugitiveGitDir()) && &foldtext ==# 'foldtext()' | + \ if &foldtext ==# 'foldtext()' | \ setlocal foldtext=fugitive#Foldtext() | \ endif autocmd FileType fugitive - \ if len(FugitiveGitDir()) | - \ call fugitive#MapCfile('fugitive#StatusCfile()') | - \ endif + \ call fugitive#MapCfile('fugitive#StatusCfile()') autocmd FileType gitrebase \ let &l:include = '^\%(pick\|squash\|edit\|reword\|fixup\|drop\|[pserfd]\)\>' | - \ if len(FugitiveGitDir()) | - \ let &l:includeexpr = 'v:fname =~# ''^\x\{4,\}$'' ? FugitiveFind(v:fname) : ' . - \ (len(&l:includeexpr) ? &l:includeexpr : 'v:fname') | + \ if &l:includeexpr !~# 'Fugitive' | + \ let &l:includeexpr = 'v:fname =~# ''^\x\{4,\}$'' && len(FugitiveGitDir()) ? FugitiveFind(v:fname) : ' . + \ (len(&l:includeexpr) ? &l:includeexpr : 'v:fname') | \ endif | \ let b:undo_ftplugin = get(b:, 'undo_ftplugin', 'exe') . '|setl inex= inc='