Expand <cfile>

This doesn't play well with :Git as it can result in a fugitive:// URL,
but it does make :Gedit <cfile> and :GBrowse <cfile> do what I mean.
This commit is contained in:
Tim Pope
2021-03-29 23:09:54 -04:00
parent 002ed8de2e
commit 9bd7c26466

View File

@@ -1159,7 +1159,7 @@ function! fugitive#Object(...) abort
endif
endfunction
let s:var = '\%(%\|#<\=\d\+\|##\=\)'
let s:var = '\%(%\|#<\=\d\+\|##\=\|<cfile>\)'
let s:flag = '\%(:[p8~.htre]\|:g\=s\(.\).\{-\}\1.\{-\}\1\)'
let s:expand = '\%(\(' . s:var . '\)\(' . s:flag . '*\)\(:S\)\=\)'
@@ -1194,6 +1194,15 @@ function! s:ExpandVar(other, var, flags, esc, ...) abort
let buffer = s:BufName(len(a:other) > 1 ? '#'. a:other[1:-1] : '%')
let owner = s:Owner(buffer)
return len(owner) ? owner : '@'
elseif a:var ==# '<cfile>'
let cfile = expand('<cfile>')
if v:version >= 704 && get(maparg('<Plug><cfile>', 'c', 0, 1), 'expr')
try
let cfile = eval(maparg('<Plug><cfile>', 'c'))
catch
endtry
endif
return cfile
endif
let flags = a:flags
let file = s:DotRelative(fugitive#Real(s:BufName(a:var)), cwd)