Changeset 14691
- Timestamp:
- 04/22/13 10:34:44 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/externalpackages/vim/addons/vim/plugin/file_line.vim
r4230 r14691 1 " Avoid installing twice or when in unsupported Vim version. 2 if exists('g:loaded_file_line') || (v:version < 700) 3 finish 4 endif 5 let g:loaded_file_line = 1 6 1 7 function! s:gotoline() 2 8 let file = bufname("%") 3 let names = matchlist( file, '\(.*\):\(\d\+\)')4 9 5 if len(names) != 0 && filereadable(names[1]) 10 " :e command calls BufRead even though the file is a new one. 11 " As a workarround Jonas Pfenniger<jonas@pfenniger.name> added an 12 " AutoCmd BufRead, this will test if this file actually exists before 13 " searching for a file and line to goto. 14 if (filereadable(file)) 15 return 16 endif 17 18 " Accept file:line:column: or file:line:column and file:line also 19 let names = matchlist( file, '\(.\{-1,}\):\%(\(\d\+\)\%(:\(\d*\):\?\)\?\)\?$') 20 21 if empty(names) 22 return 23 endif 24 25 let file_name = names[1] 26 let line_num = names[2] == ''? '0' : names[2] 27 let col_num = names[3] == ''? '0' : names[3] 28 29 if filereadable(file_name) 6 30 let l:bufn = bufnr("%") 7 exec ":e " . names[1] 8 exec ":" . names[2] 9 exec ":bdelete " . l:bufn 10 if foldlevel(names[2]) > 0 11 exec ":foldopen!" 31 exec ":bwipeout " l:bufn 32 33 exec "keepalt edit " . file_name 34 exec ":" . line_num 35 exec "normal! " . col_num . '|' 36 if foldlevel(line_num) > 0 37 exec "normal! zv" 12 38 endif 39 40 41 exec "normal! zz" 13 42 endif 43 14 44 endfunction 15 45 16 46 autocmd! BufNewFile *:* nested call s:gotoline() 47 autocmd! BufRead *:* nested call s:gotoline()
Note:
See TracChangeset
for help on using the changeset viewer.