[slim-vim] Slim-vim, future and milestones. (V0.1!!!)

Brad Beveridge brad.beveridge at gmail.com
Fri Jul 14 10:36:02 CDT 2006


On 14/07/06, Larry Clapp <larry at theclapp.org> wrote:
> On Fri, Jul 14, 2006 at 05:46:46AM -0400, Larry Clapp wrote:
> > On Thu, Jul 13, 2006 at 03:37:32PM -0700, Brad Beveridge wrote:
> > > I remember this bug now - the issue is in Vim7.  It if_ecl.c there
> > > is a call to eval_to_string, which calls into Vim's eval.c module.
> > > If you look at eval_to_string, you can either get back a Vim List
> > > (which at the moment our FFI can't parse), or a string that uses
> > > \n as an item seperator.  I changed if_ecl.c to output the later.
> > > I don't have the code in front of me as a complete unit, so I
> > > can't really be more specific, sorry.
> >
> > I found it.  I'd like to make it return a Lisp list.
> >
> > > Hope that helps.  If it does, can you please check the change in
> > > to the Vim7 repo?
> >
> > I will when I make them.  :)
>
> VIM:EXPR used to return only strings.  I've fixed it to return a
> number for a number, a string for a string, and a Lisp list for a Vim
> list.
>
> In particular, (vim:funcall "tabpagebuflist") now returns a Lisp list
> of Lisp numbers:
>
>   % vim
>   :sb
>   :ecl (print (vim:funcall "tabpagebuflist"))
>   => (1 1)
>   :ecl (print (vim:tabpagebuflist))
>   => (0 0)
>
> VIM:VAR assumed that VIM:EXPR would return only a string; I fixed it
> too.  Now if VIM:EXPR returns a string, but it looks like a number,
> VIM:VAR will parse it and return the number; if it's not a string,
> VIM:VAR just returns it.
>
> Since VIM:VAR now knows the difference between numbers and strings, I
> removed VIM:VAR-S and VIM:VAR-N.  If you want a numeric variable as a
> string use PRIN1-TO-STRING or whatever; if you want a string variable
> as a number, use PARSE-INTEGER.
>
> Here's the changelog, which I'll also CC to the Changelog for July
> thread.
>
> > Fri Jul 14 11:04:34 EDT 2006  Larry Clapp <larry at theclapp.org>
> >   * Added Vim FFI for tabpagenr and tabpagebuflist
> >
> >   vim:tabpagenr takes an optional argument, but if you provide it,
> >   it must be NIL or string= "$", or it's silently ignored.
> >
> > Fri Jul 14 10:03:56 EDT 2006  Larry Clapp <larry at theclapp.org>
> >   * Make VIM:VAR work with the new VIM:EXPR; delete VAR-S and VAR-N
> >
> > Fri Jul 14 09:26:55 EDT 2006  Larry Clapp <larry at theclapp.org>
> >   * Make VIM:EXPR work with more types of Vim data: numbers, strings, lists
> >
> >   Doesn't work with Dictionaries yet.
> >
> >   - A Vim number may become a fixnum or a bignum.
> >   - A Vim string becomes a Lisp string.
> >   - A Vim list becomes a Lisp list (recursively).
> >   - A Vim dictionary displays an error ("E685: Internal error:
> >     vim_type_to_cl_object(VAR_DICT)")
> >
> >   Changed vim:funcall to only call parse-integer on the returned
> >   value if the returned type is STRING *and* the given function is
> >   supposed to return an integer.  (Previously vim:expr *always*
> >   returned strings.)
> >
> >   Also added some comments and docstrings.
>
> -- Larry

Fantastic.  I'll do a pull and fix up Slim-vim tonight, unless you
beat me to it :)
As a side note, having a full strength Lisp built into Vim really
makes me want to do other things in the Vim+ECL environment.  Was it
JWZ who said "All programs expand until they can read mail"? :)

Cheers
Brad

-- 
Go and see "An Inconvenient Truth"
http://www.climatecrisis.net/


More information about the slim-vim mailing list