" This is a modified version of Victor Bogado da Silva Lins file:line script from " http://www.vim.org/scripts/script.php?script_id=2184 " modified by Dave Gilbert (dave@treblig.org) to do file:line:column and allow a : at the end function! s:gotoline() let file = bufname("%") if file =~ ':$' let file = substitute(file, ':$', "", "") endif " Lets try with name:line:column let names = matchlist( file, '\(.*\):\(\d\+\):\(\d\+\)') if len(names) == 0 " OK, lets try just name:line let names = matchlist( file, '\(.*\):\(\d\+\)') endif if len(names) != 0 && filereadable(names[1]) let l:bufn = bufnr("%") exec ":e " . names[1] exec ":" . names[2] exec ":bdelete " . l:bufn if foldlevel(names[2]) > 0 exec ":foldopen!" endif if (names[3]) exe "normal " . names[3] . "|" endif endif endfunction autocmd! BufNewFile *:* nested call s:gotoline()