It turned into a Vim and GNU nano ramble post

Because I still don't have my audio equipment and therefore can't record Rubenerd Shows, as usual I have to offload my scattered thoughts and ramblings here instead. For a more authentic Rubenerd Show experience, try reading the post out loud to thin air with a somewhat Aussie accent that people in Singapore and Malaysia think sounds more British, and sprinkle in a few "that doesn't make any sense", "what bothers me about the whole thing" and "I like grilled cheese sandwiches" remarks.

View outside the Boatdeck Cafe
View outside the Boatdeck Cafe, from my Flickr profile

I'm sitting at the Boatdeck Cafe in Mawson Lakes once again on my laptop. Despite getting broadband at the house only last week, I'm the kind of person who can't live his whole life at either work, uni or home. Check that, I'm the kind of person who can't do work just at work, uni or home. For some reason I'm always more productive at coffee shops. I can't imagine what I might be ingesting there that would cause me to act differently.

To continue this post by not actually mentioning anything of substance, I'm typing this post using Vim in the Terminal on my MacBook Pro. After a brief flirtation with TextMate last year and an even briefer encounter with Apple's bundled TextEdit.app, I'm back to the command line. To tell the truth for the longest time I was a GNU nano person; it was the first text editor I ever learned to use on a Unix-like system back when I had my first job during high school, and I loved how straightforward and simple the commands were. I even wrote a few wrapper scripts around it to make it more flexible back when I was obsessed with Perl. I still really like nano.

                :::                         The
  iLE88Dj.  :jD88888Dj:
.LGitE888D.f8GjjjL8888E;       .d8888b.  888b    888 888     888
iE   :8888Et.     .G8888.     d88P  Y88b 8888b   888 888     888
;i    E888,        ,8888,     888    888 88888b  888 888     888
      D888,        :8888:     888        888Y88b 888 888     888
      D888,        :8888:     888  88888 888 Y88b888 888     888
      D888,        :8888:     888    888 888  Y88888 888     888
      D888,        :8888:     Y88b  d88P 888   Y8888 Y88b. .d88P
      888W,        :8888:      "Y8888P88 888    Y888  "Y88888P"
      W88W,        :8888:
      W88W:        :8888:     88888b.   8888b.  88888b.   .d88b.
      DGGD:        :8888:     888 "88b     "88b 888 "88b d88""88b
                   :8888:     888  888 .d888888 888  888 888  888
                   :W888:     888  888 888  888 888  888 Y88..88P
                   :8888:     888  888 "Y888888 888  888  "Y88P"
                    E888i
                    tW88D                 Text Editor

Fancy ASCII art from the Nano homepage.

Anyway back to Vim: I have been used to using vi and vim for a while now, but only recently have I started using Vim almost exclusively. I absolutely love how I can throw source code written in virtually any programming language or script and it will detect it and give it the correct syntax highlights. I’m a very visual person, and reading code in Vim is an absolute pleasure. I’ve also got used to modal data entry and know most of the basic commands. What astonishes me though is in learning Vim you uncover even more functions you didn’t know existed. In a way, you don’t know how little you know until you’ve learned how to use some of it, if that makes any sense, which I’m sure it didn’t.

Reading back to an earlier edition of the Linux Format magazine from the UK, I came across a project called Cream which essentially takes Vim and adds a whole tone of extra features and changes some of the more ambiguous commands. I’m hesitant to try it out until I’m off my training wheels using Vim as it is: I’m worried if I got used to using a fuzzy extra layer on top of Vim instead of Vim itself I’ll never learn how to use it properly. It does look really interesting though, if you’ve had experience with it I’d love to hear about it.

Peter Krantz's ultimate VIM Keyboard!
Peter Krantz’s ultimate VIM Keyboard!

Well how about that, this post which started off as useless rambling is actually going somewhere. Wonders never cease. Except in black holes; I heard the gravity in black holes is so strong not even light or wonders can escape, let alone ceasing wonders.

The last thing to mention with regards to Vim is whether it’s worth running a graphical version. On Mac OS X I have several options: the MacVim project provides a native Aqua graphical port complete with Safari-like tabbing and Mac-like anti-aliased text. Alternatively I can just fire up MacPorts and install Vimwith gtk enabled , then launch it from the Terminal with the -g option.

MacVim on Mac OS X Leopard
MacVim on Mac OS X Leopard.

Having chosen the former and used it for a few hours, I appreciate being able to launch Vim from a slick icon on the Dock and having it associate with text and source code files in the Finer, but aside form those I don’t see any real difference. It has a toolbar, but I fail to see what the point is considering Vim is a keyboard driven application! And while the tabs are nice to use, I find it much easier just using a tabbed shell emulator with a seperate Vim session running in each, and tweaking my .vimrc to enable syntax highlighting and a few other options. For what it’s worth, I know the commandline Vim supports multipe documents per session too, and I’m sure as I get more used to it I’ll be trying it out, but for now this is a nice compromise.

I’m also aware that as a Vim user I’m supposed to make a comment about how the Emacs editor is unnecessarily bloated, suffers from acute feature creep, takes far too long to load, is unreliable, has a crappy logo, doesn’t work as well over a bandwidth-constricted SSH session, flies in the face of the Unix philosopy of only doing one thing and doing it well, uses ridiculous key combinations, induces premature carpel tunnel syndrome, accelerates arthritis in the fingers and looks cheaper when run as a graphical GTK application… but I’m going to take the high road in this case and refrain from comment ;-).


One of the longest running posts on my Anime blog is what editors the peoples from Suzumiya Haruhi no Yūutsu would use. Haruhi probably uses Emacs because she’s such a control freak, Mikuru probably uses Vi because she’s a time traveller and needs travel light, and Yuki simply sends hexadecimal code from her brain. We have interesting conversations at 2am when we’re half asleep.

In other news, Ruben was bashed up this afternoon by a band of Emacs programmers who said that his editor of choice didn’t even have an email client, tetris game or coffee machine built into it. Ruben attempted to retort by claiming that he was in fact glad that his editor of choice couldn’t be used to send email, play tetris or brew coffee, but he was out cold before he got the chance. For what it’s worth, they spared his life because he mentioned that Windows was ikky, that he thought Japanese and Korean culture is cool and that he didn’t have a girlfriend. Had he been wearing a Vista lanyard, he would have been in dire straits.

Here I am again in this mean old town
And youre so far away from me
And where are you when the sun goes down
Youre so far away from me …

… Custom kitchen delivery
We’ve gotta move these refrigerators
We’ve gotta move these colour tee-veeeeees…

UPDATE: I admit I've started using MacVim after all. It just looks too nice to pass up, and it fits in so well with the rest of the desktop.