diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim index 913f91f..81b519e 100644 --- a/plugin/fugitive.vim +++ b/plugin/fugitive.vim @@ -661,7 +661,9 @@ function! s:buffer_expand(rev) dict abort else let file = a:rev endif - return s:sub(s:sub(file,'\%$',self.path()),'\.\@<=/$','') + return s:sub(substitute(file, + \ '%$\|\\\([[:punct:]]\)','\=len(submatch(1)) ? submatch(1) : self.path()','g'), + \ '\.\@<=/$','') endfunction function! s:buffer_containing_commit() dict abort