On Mon, Sep 14, 2009 at 2:47 PM, Daniel Fetchinson
<[email protected]> wrote:
>
>>>> I'm regularly doing :split filename1 followed by :split filename2
>>>> followed by :split filename3 and was trying to do :split filename* but
>>>> this didn't work. The goal would be to split the window in as many
>>>> pieces as the number of files that match filename* and have each of
>>>> the matching files in it's own split window.
>>>>
>>>> Basically I'm trying to automate :split filename1 :split filename2
>>>> :split filename3 etc etc.
>>>>
>>>> Is there a way to do this?
>>>
>>> You can do
>>>
>>>     :args filename*
>>>
>>> to set the argument list to that set of files, then
>>>
>>>     :all
>>>
>>> to open each file in the argument list in a new window.
>>
>> Wow, this is great, thanks! If I would have known this in the last 10
>> years..... :)
>
> This in itself is pretty cool, but now I'd like to make something even
> cooler by hooking up a custom function to do this. This is where I'm
> currently failing. What I'd like to see is when I type
>
> :msplit filename*
>
> then this should be equivalent to
>
> :args filename*
> :all
>
> where of course msplit stands for multiple split. I don't really know
> how vim functions work, so far I was always copy-pasting already
> working stuff and only modified them for myself. So based on this
> limited experience what I tried was
>
> function! Msplit( expr )
>    args a:expr
>    all
> endfunction
>
> but this (maybe trivially) doesn't work. What would be the way to do this?

Try this (untested):

function! Msplit(...)
  if a:0 > 0
    exec args join(a:000, ' ')
  endif
  all
endfunction

command! -args=* -complete=file Msplit :call Msplit(<f-args>)

-- 
HTH,
Hari
>
> Cheers,
> Daniel
>
>
> --
> Psss, psss, put it down! - http://www.cafepress.com/putitdown
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to