Lispyville: a lisp-editing environment suited towards evil users
I am genuinely surprised to see this on the front page. The author has done amazing work with Emacs packages, such as general.el [ <a href="https:&#x2F;&#x2F;github.com&#x2F;noctuid&#x2F;general.el" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;noctuid&#x2F;general.el</a> ], his Evil guide [ <a href="https:&#x2F;&#x2F;github.com&#x2F;noctuid&#x2F;evil-guide" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;noctuid&#x2F;evil-guide</a>], and many others.<p>I used vim for many years and like everyone else in a similar position, none of the touted &quot;vim emulators&quot; came close at all. They would always only cover a very superficial micro-subset of vim functionality, such as some thin approximation of modes and motions.<p>Inevitably you would come up against a brick wall by doing something which you would otherwise express in vim without giving it a second thought, due to one&#x27;s fluency, and it would all come crashing down. Once you reach that point, it&#x27;s very difficult to just &quot;make do&quot; because it becomes blatantly obvious that what you&#x27;re using is not vim. In such cases I personally would just revert to the stock editor, because I&#x27;d rather use the well made stock editor than a half-hearted attempt at vim emulation that would keep me guessing as to whether or not certain functionality I&#x27;ve come to expect was implemented or not.<p>I used vim for a long time because I truly felt (and still do) that it was the best &quot;editing language&quot; or &quot;interface,&quot; as in, the means by which one communicates their intentions to the editor. However, I always felt like it came short in everything else. Options, their names, and their documentation were terse and cryptic. Vimscript felt inconsistent and left something to be desired for me. Overall I _loved_ vim but I felt most people did so _despite_ many failings. When I would see beautifully crafted Emacs packages such as Magit [ <a href="https:&#x2F;&#x2F;magit.vc&#x2F;" rel="nofollow">https:&#x2F;&#x2F;magit.vc&#x2F;</a> ] and how meticulously they were documented [ <a href="https:&#x2F;&#x2F;magit.vc&#x2F;manual&#x2F;magit&#x2F;#Top" rel="nofollow">https:&#x2F;&#x2F;magit.vc&#x2F;manual&#x2F;magit&#x2F;#Top</a> ], I started to become interested in Emacs. The fact that Emacs has a culture of and encourages everything being self-documented is what pushed me over the edge. Every variable, function, keybind, syntax highlighting face, and _much more_ (truly pretty much everything) is and can be documented. Emacs Lisp may not satiate hardcore lispers, but I&#x27;ve found it to be amazingly powerful. I can interactively expand macros to see what&#x27;s going on at each step with macrostep. There&#x27;s a built-in interactive debugger. One can &quot;advise&quot; existing functions to add functionality to them (before, after, around, etc.). I&#x27;ve found that the vast majority of package authors are very receptive and accommodating, and in the absolute worst case where they&#x27;re intransigent or I recognize that it&#x27;s an edge case that only applies to me, I can confidently, consistently, and safely modify things myself without having to fork the package. I could go on and on.<p>Admittedly however, Emacs out of the box left a _lot_ to be desired for me in terms of cosmetics and keybinds. It&#x27;s important to remember that many of the keybinds for example were devised back in a time before the now-more-conventional keybinds became, well, conventional. I knew not to be deterred by that though. IMO, the way to think of Emacs is as a language or REPL with which each person creates their _own editor_, _if_ they want to. I fully expect that if I were to sit at someone else&#x27;s Emacs setup, they would have vastly different binds and modifications, and _yet_ I would feel confident knowing that I could count upon some core primitives such as describe-key and so on, again due to Emacs&#x27; self-documenting nature.<p>To call Evil a vim emulator or even a port is to sell it short. It continues to blow my mind how amazing Evil is at _being_ vim. I realize it&#x27;s blasphemous, but I truly believe that it is a _better vim than vim is_. The ease with which anyone can (and does) define new operators, motions, and text objects is breathtaking coming from vim. Likewise, I worried about losing access to many of the vim packages I used. I quickly found that the self-purported &quot;ports&quot; of the packages (such as evil-surround) were actually _much better_ than their vim equivalents! They could be extended and configured in many more ways than their vim equivalents, and they would _compose_ with many other Emacs constructs out of the box. I continue to be amazed.<p>Despite how great I believe Emacs is, I wouldn&#x27;t be using it if it weren&#x27;t for how amazing Evil is. I have come to depend on both, the vim &quot;editing language&quot; and the Emacs environment, but if it came down to it, I would have to choose vim for its editing language.<p>But it&#x27;s 2017 and nowadays we can have both. The war is over.