Why I switched from Vim to Emacs

A long-time, loyal Vim user moves to the other side in the age-old debate between text editors.
102 readers like this
102 readers like this

I have been a loyal Vim user since, well, I don't even remember any longer. Over the years, I tried other editors, but Vim commands and keyboard shortcuts are second nature to me, so much so that I ended up doing :w every time I wanted to save in another application. So, for a long time, I stuck with Vim for all my note-taking and writing. By combining Vim with Markdown syntax, I could easily export my notes to any format for other uses or sharing with my colleagues.

I've always enjoyed working in a terminal, but I usually needed other applications for my email, calendar, and tracking the time I spend on various tasks, which I like to do for numerous reasons. I tried different cloud solutions, kanban boards, and email clients, but I kept looking for a way to do it all in a terminal. I tried some great projects for time tracking and kanban on the command line—but there was always something missing in my workflow. That is until I read an article about using Org mode in Emacs.

I had tried Emacs before and found out there are even more commands and keyboard combinations to keep track of in Emacs than Vim! However, every time I read an article explaining different ways to use Org mode, it seemed like Emacs was the solution I was looking for. So I made another venture into the world of Emacs.

My steps toward Emacs

At first, I struggled to try to remember all the new commands and endless combinations of CTRL + keys. I learned I could tweak Emacs to use my well-known Vim commands and keyboard shortcuts, but I decided I should try to learn Emacs' basics first.

I messed up a lot. I had to keep a cheat sheet handy to check myself. Undo was the command I looked up most often. In time, the commands and keystrokes grew on me, and, as I moved along, adding more features into my Emacs configuration and getting used to the environment, it turned out to be, if not everything I needed, at least the best solution I have found so far.

Time and task tracking

I started out by using Emacs and Org mode just for my tasks and planning, replacing how I had been using online kanban boards. I set up my tasks with TODOIN-PROGRESS, and DONE labels, mirroring the workflow and setup I was used to using on my kanban board. It's easy to sort or filter on different statuses or keywords, which makes it easy to find the most important task to focus on. Later, I added WAIT and HOLD options for tasks that were waiting for someone else or were on hold for different reasons. Emacs has great options to customize it for my unique needs; for example, I quickly set up color-coding to make it easy to see the different statuses.

By using Emacs' agenda, I could see all my scheduled meetings and deadlines, so I had less need to switch to my company's calendar application.

Emacs' main advantage for me was the ability to track my time for each task I work on or every meeting I attend. At the end of each week and month, I can pull statistics for time reporting or just for my own information and follow-up. I mainly use this method to clock my time.

Note-taking

Since I was using Emacs for time tracking and planning, it became kind of strange to switch over to Vim for note-taking and writing. So I started to create and open my notes files directly in Emacs; no surprise, it was quite handy because it was easier to switch between my notes and my to-do file.

Also, just like in Vim, you can set up Emacs to colorize Markdown. But soon, I started using Org mode's syntax for my notes instead because it provides other nice features, such as the ability to close and expand different headings.

With Pandoc installed, I can export my notes to HTML, PDF, and other document formats with only a few keystrokes.

The one thing I have not yet moved to Emacs is email. At work, we use Microsoft 365 and, while it's possible to read and send email in Emacs, there are too many obstacles, like booking meetings and conference rooms, to seem worth the trouble to bring them into my terminal. Maybe my personal email, though…

What's the real debate?

After all these years of using Vim and observing the old "Vim vs. Emacs" debates, I feel like a traitor moving over to Emacs. I have seen and tried similar features or add-ons in Vim, but they never seemed to work as fluently as they do in Emacs. I still use Vim for quick notes or when I want to copy and paste something within or between files (as I can't remember the way to do it right in Emacs—but someday I will).

Maybe the debate isn't really about Vim vs. Emacs, and it's about using the technology that works best for the task at hand. Explore both, appreciate both. Until then :wq!

What to read next
Jimmy Sjölund is a Principal Agile Practitioner at Red Hat, focusing on organisation transformation and team excellence while exploring agile and lean workflows. He is a visualisation enthusiast and an Open Organization Ambassador.

21 Comments

Your a brave man. Haha just kidding. While I can appreciate the different sides and sticking to one, I have to agree with you when you said to use the best tool for the job. I couldn't agree more. I use both Vim and Emacs myself because they are both awesome. Why limit yourself to just one I always say.

Yes, my main struggle have been to keep both vim and emacs keyboard shortcuts in memory. It would have been easier to just need to remember one. Then again, as I still use both regularly they seem to stick, so far.

In reply to by Jason Moore (not verified)

You switched from vim because you don't use it right ???

Yeah there's always that. And it wasn't better when I switched from QWERTY to Colemak keyboard layout for my navigation in vim either.

In reply to by MP (not verified)

All the organization tools you mentioned are available in the Vim plugin "vimwiki"... Should you decide to go back. ?

It seems it would cover some of the features I use. What I would miss are the colorisation of my TODO statuses, clock timer, and I don't think it (yet) support collapsing headings? Seems like a neat tool though.

In reply to by Brand Gamblin (not verified)

I switched completely over to emacs. I use spacemacs with evil mode and so I didn't have to really keep key bindings straight.

I considered that but it would require more work and config when I change computers, so I decided to try to learn the "native" keyboard shortcuts.

In reply to by Erich (not verified)

I also switched to emacs, though I use evil for vim keybindings.

The fact is, emacs is a better vim than vim is. It can do everything that vim does, but the plugin language is better and more rich, and so all the plugins are better and more rich.

EVIL is the best of both worlds.

I considered that at first but as I use Colemak as my keyboard layout the emacs shortcuts actually work better for me.

In reply to by Adam Olsen (not verified)

I did, but it seemed more clunky, especially the keyboard bindings. Then I think I didn't find a way for the clock time usage..?

In reply to by Brautigam Gergely (not verified)

This is like saying you switched from Notepad to GNU/Linux. XD

Have you tried Evil Mode in Emacs? I've been wanting to test it out...

Haha I made that switch long ago. I have not tried Evil Mode as I use Colemak keyboard layout and emacs shortcuts actually work better there than vi shortcuts. But I hear that many like it a lot.

In reply to by jdk (not verified)

You aren't a traitor, you've just seen the light. The overriding people choose vim over emacs is vim is far easier to pick up from scratch for beginners. emacs is so counter-intuitive sometimes it's funny, such as recommending use of c+f, c+b, c+p, c+n instead of the cursor keys, which is enough to send rookies running before they've started. The in-built emacs tutorials could be far better.

org mode is rich and powerful and you can write and execute code in it too, it is though really only scratching the surface of its features, modes, extensibility and personalisation features. It has enough features to function of a complete OS replacement, rather than a mere text editor.

I expect you must have tried calc, the in-buit RPN calculator (with an algebraic mode)? Do have a deep-dive into calc, if you've yet only tried basic arithmetic and mathematical functions.

Have you tried Magit the git porcelain?

The more you use emacs the more you will realise what an immense program it is.

Nope, I still pop out to terminal for my git stuff. Then again, not being a coder I don't use git that much. My emacs is more for personal notes and the agenda.

In reply to by Jay Kay (not verified)

Jimmy,
I'm a staunch emacs user. Even in spite of a chance meeting with the guy who invented vi. I was in Cory Hall at UC Berkeley when a grad student bathed in and told everyone, "Come look what I just did!" He opened his special version of the "ex" editor, typed ":v" and it went into "vi"sual mode.
However my personal biggest problem with vi is with identifying what will happen if you just type. In vi you are either in insert mode or append mode. The char you type will go either before the insertion point or after it. In emacs typing always is in append mode. That's all due to how the newline is handled. In vi it is special. In emacs it is just another char. It just displays as a line break but it's still a char.
I used to use emacs for just about everything. From email to shell interaction. This was especially helpful when using dialup modems! Now emacs is still my primary editor. I especially like the query replace function! Very handy.

Thanks for your article. Hopefully others will make the break too.

Unfortunately I'm still too green to use either one of them!.....just too damn confusing!... :o(

It is confusing. No matter which one you start out with there's a lot of searching for commands and having a cheat sheet available. It's worth the effort though I think. Hang in there!

In reply to by Eddie G.O. (not verified)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.