This is a read-only archive!

Vim joy, Lisp woes

I symlinked my .vimrc to my local mirror of my website so that every time I rsync it (which is pretty often) it'll automatically update my the vimrc on this server. So that should be fun. I experiment with things in there all the time so at any given moment there are likely to be things horribly broken, but maybe someone can use some of it.

This mirror of Ciaran McCreesh's vimrc which I found linked from here (edit: updated version here) has lots of good stuff in it. In particular using :set listchars to display tabs and trailing whitespace as some funky Unicode characters is a really good idea. When I first tried that good idea I realized my favorite font ProggySquare didn't properly display most Unicode characters, which was part of my motivation to switch to Terminus. (That, and those tiny Proggy fonts aren't so great on a 1920x1200 monitor.)

After a long time putting it off, I finally hunkered down one day and figured out how the heck Vim script works. The difference between statements and expressions in Vim script language confused me for a while, which goes to show that I'm far too used to Ruby and Lisp where almost everything or everything returns a value as an expression. Vim expects expressions in certain places and colon-prefixed commands in others. But then there's normal and eval and execute and "= some of which let you do things from one mode in another mode if you mix and match them. But I think I've gotten a handle on it now.

Today I came across Limp which is a recent attempt to get Lisp to work well with Vim. It seems quite new and buggy and had dependencies on things I had to guess until I was able to install it (like rlwrap), but I still was excited about it. Until I realized that it's just a wrapper around GNU screen. SBCL runs separately, and some keystrokes send stuff from Vim to screen, but that's about it. Nice, but not nearly as nice as SLIME in Emacs. So that disappointed me. In the back of my mind I always think about how Vim could possibly be integrated with Lisp like SLIME does but I don't see any good way. Vim doesn't have the ability to embed shells like Emacs and it doesn't look like it will gain that ability any time soon. Ah well.

May 14, 2008 @ 5:17 PM PDT
Cateogory: Programming

5 Comments

Ciaran McCreesh
Quoth Ciaran McCreesh on May 15, 2008 @ 7:05 AM PDT

My current vimrc is here: http://ciaranm.wordpress.com/2008/05/15/my-vimrc/

Brian
Quoth Brian on May 15, 2008 @ 8:50 AM PDT

Awesome, thanks.

Chad
Quoth Chad on May 15, 2008 @ 8:17 PM PDT

aaahhhhh.....I'm glad you posted this. I've been a long time user of Emacs and never really had an issue with lisp. Now that I'm trying to use Vim more, I'll need to figure this out.

Brian
Quoth Brian on May 16, 2008 @ 2:37 AM PDT

Vim has built-in options for a lot of things that emacs makes you download/write elisp scripts for, which makes configuring vim much easier. Once you know how to navigate vim's help pages.

Mikael Jansson
Quoth Mikael Jansson on May 16, 2008 @ 10:45 PM PDT

Hi Brian,

I'm glad Limp got you excited at least initially, even thought it wasn't all you expected it to be. Save for the rlwrap dependency (which by the way should be autodetected in 0.3.2, falling back on not using it), I'd really like to hear about the bugs you found!

There's a Trac instance up at http://monostate.net/project/limp (or just http://limp.monostate.net to get at the (currently almost empty) main site for a link to the tracker) -- would be great if you could take a few minutes to create tickets for the problems you had.

Thanks! -- Mikael