" ----- Emulate 'gf' but recognize :line format ----- function! GotoFile(w) let curword = expand("") if (strlen(curword) == 0) return endif let matchstart = match(curword, ':\d\+$') if matchstart > 0 let pos = '+' . strpart(curword, matchstart+1) let fname = strpart(curword, 0, matchstart) else let pos = "" let fname = curword endif " Open new window if requested if a:w == "new" new endif " Use 'find' so path is searched like 'gf' would execute 'find ' . pos . ' ' . fname endfunction set isfname+=: " include colon in filenames " Override vim commands 'gf', '^Wf', '^W^F' nnoremap gf :call GotoFile("") nnoremap f :call GotoFile("new") nnoremap :call GotoFile("new")