From Emacs to Vim – Chapter #0

Hi there. This will probably become a new mini series. I begin by quoting Vanessa Da Mata:

É só isso
Não tem mais jeito
Acabou, boa sorte
Não tenho o que dizer
São só palavras
E o que eu sinto
Não mudará
Tudo o que quer me dar
É demais
É pesado
Não há paz
Tudo o que quer de mim
That’s it
There’s no way
It’s over, good luck
I’ve nothing left to say
It’s only words
And what l feel
Won’t change
Tudo o que quer me dar / Everything you want to give me
É demais / It’s too much
É pesado / It’s heavy
Não há paz / There’s no peace

Upstream URL with lyrics.

Now, a little bit of context.

Two or three weeks ago I began learning vim. This is due to a lot of reasons: one of them is that vim is actively used by a lot of members of the Arch Linux community, and I usually am influenced about their tastes — what doesn’t mean that I will comply with everything, it is just a matter of trying new things. Another reason is that I am actively learning new open source tools, and vim is definitely one of the most widespread and ubiquitous ones. I don’t need to provide statistical sources for that, do you agree? Vi is present everywhere, even on my Android. (Now, almost nobody uses vi anymore, however vi and vim are too much similar that for simple and rapid tasks usually annoying differences won’t even be noticed). Another reason is that I never became 100% satisfied with Emacs. Hey, I like emacs very much, don’t get me wrong, however there were always some piece of completeness missing in it, so this puzzle never got finished. In particular, orgmode (an emacs task-manager-note-taker-and-everything mode) is a tool that I felt in loved with, and thanks to it I won’t completely remove emacs from my system; you should notice that orgmode is something very specific to emacs. Although there are some tentatives on vim implementations, as far as I read, they are not very good (at least not compared to a vanilla, emacs orgmode).

Okay, those are sufficient for now, but there are more reasons that will reveal themselves along the next posts.

Now, we should go back to the lyrics. I really love how this music is related to emacs; in particular,

Tudo o que quer me dar / Everything you want to give me
É demais / It’s too much
É pesado / It’s heavy
Não há paz / There’s no peace

That’s is right. Emacs always was regarded to as the dinosaur, as the operating system of your computer, as the I-want-to-rule-all-your-workstation program. This has both its advantages and disadvantages, of course. The point with vim is that is tries to Keep it Simple. It will never be everything: it is only your text editor. Nothing more. Well, although people will always try to write a Twitter Client for it and similar things, I feel it is not natural. No, IT IS NOT!! Now, with emacs, those things are pretty natural. It was created to be extended! (Emacs is described as the extensible text editor.) Along the last two years, I’ve tested more than a hundred of add-ons and customizable pieces and bits for it: it is so cool how a functional language (Emacs Lisp) can improve a text editor. 2048 game, flappymacs, twitter client, mediawiki client, xkcd browser, RSS reader, calendar application (built-in), calculator (built-in), mail client  Yeah, emacs is everything! Maybe too much for me.

Now, this is the part that makes me feel a little sad: There’s no peace. Yeah, this is a problem. If you browse through my dotfiles repository on Github, more specifically, through its commit history, you’ll see that my .emacs file is one of the files that most changed through the days. I am always editing something of it, and I am never completely 100% satisfied with the outcome. Because it is to easy to tweak and customize almost every aspect of Emacs, this means it is also possible to customize some aspects that I should probably not even be bothering to (and I should probably not touch those ones). Now, this proved to be a problem through the last months. As a programmer, a text editor cannot (should not) get more attention from me than, say, a project or a series of projects I am working at the time. This is significant because a vanilla emacs is very bad (that is, emacs is only good after you customize it to your needs). While I could argue that there are already third party pre-customized emacs (such as prelude and emacs-starter-kit — for more, see on Xah Lee’s blog), pretty good customizations by the way (do I need to say I’ve tested them all?), this wouldn’t stop me from further customizing my dear dot-emacs file.

Now, during the last days, two emacs tools (one official and another one operated by the community) have made me keep calm and further stop me from customizing my emacs file: they are customize.el and el-get. I wish I could have used and discovered these tools through my early days of emacs (not after two years!). Nowadays I am pretty tired of elisp, so vim will be a form of going away from emacs for a while.

Hey, I’ll stop this post here. But there are so many things I still want to talk about. Let’s create a Org list for this:

** PROGRESS introduction, motivations, and so on
** TODO org2blog
** TODO functional programming, REPL and Emacs Lisp
** TODO keybindings, keystrokes and hotkeys paradise (or nightmare)
** TODO more org-mode goodness
** TODO lessons and overall learned discipline
** TODO about the awesome emacs community
** TODO emacs blogs and RSS out there?
** TODO evil-mode
** TODO Emacs on X vs Emacs on Console
** TODO Books and study sources on Emacs
* TODO Vim
** TODO how a emacs user feels after being introduced to a modal text editor
** TODO keybindings and maps in different modes
** TODO gvim vs vim
** TODO vim community and resources?
** TODO editing text at the speed of thought, really?
** TODO books and study sources on vim
* TODO Conclusions
** TODO Are text editors still relevant today, in a world of full-featured IDEs?

Whoa. I hope you might like this mini series and want to see some  (or all!) of the above topics discussed. During it (please notice this comment won’t be repeated further on), feel free to leave out any comments about your specific experiences about vim or emacs. Also, you are encouraged to suggest me additional topics about my experience with emacs (and my soon-to-be-born experience with vim too), and even choose one of the above topics to I write about next.

Until the next post! (For now, read this.)

Update: next post.

From Emacs to Vim – Chapter #0

One thought on “From Emacs to Vim – Chapter #0

Comments are closed.