Tuesday, August 23, 2011

Re: :e handles one file

Scripting solutions aside, I thought the mailinglist would be a good
place to talk with developers of vim (or policy makers) on their view
on this. Do they post here?

On Tue, Aug 23, 2011 at 5:51 AM, ZyX <zyx.vim@gmail.com> wrote:
> Reply to message «Re: :e handles one file»,
> sent 01:15:56 23 August 2011, Tuesday
> by Tim Chase:
>
>> which should give you an ":E" command that works like ":e" except
>> that if you give it one or more filespecs, it loads them all and
>> leaves you on the last one.  E.g.
> Try :E %, it does not work. You should use expand(...) instead of glob(...)
> because expand(...) expands % and some other specials and also globs. You also
> definitely forgot fnameescape() and use `len(...)' where you can write either
> `!empty(...)' or just `a:0'.
>
> // Not very important, but you can't :E filename with newlines.
>
> Original message:
>> On 08/22/2011 01:15 PM, AK wrote:
>> > On 08/22/2011 01:47 PM, Tim Chase wrote:
>> >> Should the last file in the resulting filespec
>> >> override the others (as if ":e f[12].txt" did the same thing as ":e
>> >> f1.txt" followed by ":e f2.txt")?
>> >
>> > My guess is that if you asked 100 vim users, 90-95 would be fine with
>> > either leaving first or last file in current window and loading the
>> > rest in buffer list.
>> >
>> > But for this command, out of thousands, it can't be done!
>>
>> Not too hard to throw together something that will end up editing
>> all of them:
>>
>>    function! Edit(really, ...)
>>      if len(a:000)
>>        for globspec in a:000
>>          let l:files = split(glob(globspec), "\n")
>>          for fname in l:files
>>            exec 'e'.(a:really).' '.(fname)
>>          endfor
>>        endfor
>>      else
>>        exec 'e'.(a:really)
>>      endif
>>    endfunction
>>
>>    command! -nargs=* -complete=file -bang E call Edit("<bang>",
>> <f-args>)
>>
>> which should give you an ":E" command that works like ":e" except
>> that if you give it one or more filespecs, it loads them all and
>> leaves you on the last one.  E.g.
>>
>>    :E
>>    :E!
>>    :E *.txt
>>    :E! *.txt
>>    :E *.txt *.html
>>    :E! *.txt *.html
>>
>> So, while I wouldn't use, it's a pretty simple function to make
>> use of.
>>
>> -tim
>

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

No comments: