ln -sf /usr/bin/emacs /usr/bin/vim ?

Some time ago I actually did run ln -sf /usr/bin/emacs /usr/bin/vim. And left it like that for a couple of days. I must say that it was surprisingly nice experience. Tinkering around with elisp, building editing environment from scratch.

Of course interesting question is “How did I end up with this idea in my head?”.

I tried to play with emacs few times couple of years ago. But as a modal editing kind of guy I was unable to comprehend finger bending experience that default key bindings in emacs give you.

I tried evil mode, but it went not so well. Problem is that I’m also using programmer dvorak layout, so I need to remap couple of keys for better comfort. I failed all my previous attempts because it was not very trivial at that time to remap those keys everywhere. Also probably my lack of patience played against me. So I gave up and continued using vim (something like 5 years of hapiness).

Recently ClojureScript tool called figwheel added repl support. So as a result you have repl that compiles your clojure code into javascript and executes result in your browser session printing result back to you. Development flow like that is very common practice in clojure world and one reason why it makes clojure much better. Problem here is that it does not support nrepl (network repl) protocol and best tool for clojure in vim vim-fireplace relies on nrepl. I was using for some time tslime2 in vim to work with ClojureScript. Idea is very simple - tslime allows you to send pieces of text from your vim into some tmux panel. It works. You don’t have out of the box tooling that will select your top most clojure form sadly. Once upon a time I had discussion on #clojurescript irc and @martinklepsh mentioned that nowadays evil-mode is much better. I was bored and followed that track. I did run rm -rf .emacs.d and started from scratch. As a result my workflow from vim was ported to emacs in a couple of hours. It surprised me both how simple was that and how relatively close my setup is to default one in vim/evil. I set my default editor to emacs and continued doing my thing for a couple of days.

And here what I think so far.


Not so good:

Will I continue using emacs? Yes.

Will it be my default editor? Probably no. Vim feels more reliable because it provides modal editing experience out of the box. In emacs it an option. I’m totally fine with giving away all that goodness that emacs provides to have proper editing experience all the time. In every buffer, in every menu. And I will continue slowly improving my emacs configuration.

This experiment reminded me how many things are missing from my setup. It also reminded me that neovim might be next big thing in my tool belt. I’m really hoping to see big movement around neovim once project becomes more or less compatible with current viml based configurations.