Hi,

>
>        " 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
>

The above code using matchlist() can be replaced by the following:

    let names = split(file, ':')

- Yegappan


On Sun, Jan 2, 2011 at 4:40 PM, Dr. David Alan Gilbert <d...@treblig.org> wrote:
> Hi Victor, (and vim list cc'd)
>  I posted a script similar to your file:line script to v...@vim.org
> and Christian Brabandt was good enough to point me at your file:line plugin
> here:
>  http://www.vim.org/scripts/script.php?script_id=2184
>
> My script also deals with file:line: and file:line:column and 
> file:line:column:
> but the original version wasn't as tidy as yours and hadn't taken into account
> things like folding and deleting the original buffer like yours had.
>
> So please find below a modified version of your script that adds the 
> file:line:column
> varient and allows 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()
>
> ------------------------------------------------------------------------------
> --
>  -----Open up your eyes, open up your mind, open up your code -------
> / Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \
> \ gro.gilbert @ treblig.org |                               | In Hex /
>  \ _________________________|_____ http://www.treblig.org   |_______/
>
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to