What does HackerNews think of evil?

The extensible vi layer for Emacs.

Language: Emacs Lisp

#1 in Emacs
#2 in Vim
2 stripe blue belt here! I used to use Vim for everything other than Java development and have now adopted Emacs in the same way. I am using it for Clojure and Common Lisp development along with org mode, irc, rss, git and file management

I started with Evil mode and then moved to Xah fly keys before sticking to the emacs bindings. Having the caps lock key bound to CTRL helped me a lot. I don't know if it makes that much of a difference for Emacs but using the DVORAK layout has helped my fingers

There are other bindings you can try like Meow or God mode but I don't know what the adoption rate is like for them. Emacs gives you the flexibility to set it up as you please. As others have mentioned, there may be other keyboard options that might be more helpful as well

https://github.com/emacs-evil/evil

http://xahlee.info/emacs/misc/xah-fly-keys.html

https://github.com/meow-edit/meow

https://github.com/emacsorphanage/god-mode

If you already know Vim, you should probably not use Emacs without Evil:

https://github.com/emacs-evil/evil

It gives you comprehensive Vim bindings so what you need to learn to be comfortable in Emacs is very little. As a bonus, it also keeps your RSI risk unchanged.

Emacs is a text ecosystem. And it's trivial to add these shortcuts. Evil[0] basically rewires everything to be Vim.

[0]: https://github.com/emacs-evil/evil

I just stopped worry and succumbed to https://github.com/emacs-evil/evil. Now I only mostly just fiddle with orgmode configs to generate nice looking HTML and PDFs.
> What both Emacs and Vim have in common is an intimidating learning curve. You can't just dip your toe in.

Another thing that Emacs and Vim have in common is Vim keybindings.[1] You can pick Emacs keybindings up at your own pace. From one vimmer to another, if you want to try out Emacs, I highly recommend doing it with Evil.

[1] https://github.com/emacs-evil/evil

Emacs is also great though. For all intents and purposes, with evil mode it can act as just another implementation of Vim.[1]

But for those who like neither Emacs nor Vim ... I don't know.

[1] https://github.com/emacs-evil/evil

I don't think there's anything like that for Emacs. At least, I've not heard of it. I mostly learned it through reading stuff like Mastering Emacs and watching YouTube videos, as well as testing out other peoples configs.

UX wise, it's pretty different but I know a lot of people use Evil (https://github.com/emacs-evil/evil) or something similar to get a more vi like experience out of Emacs. If you're not vested in an Emacs workflow, or don't have one at all, I think it's worth checking out other peoples configs.

The biggest benefit of Emacs is that you can do some much from one place. That's much less context switching that you have to do, and I can see why some people prefer it.

> But at the same time, it is a whole new system to learn and get into, very specific to itself

If you already know Vim keybindings, it is very easy to get into Emacs with evil-mode.[1]

Besides that, Emacs by default comes with a menu system that helps you discover keybindings, too. And there is also cua-mode which I haven’t tried.[2]

[1] https://github.com/emacs-evil/evil

[2] https://www.emacswiki.org/emacs/CuaMode

I have an article I wrote about how I did this, but may have lost it to time.

The short version is I have SLIME running inside Emacs, and my text files open in vim. I would just reload the changed file(s) when needed (originally with cl:load-file, then later with asdf, which is roughly "make" for lisp). I used slime similarly to how I would use gdb. It was a big improvement over using vim with the clisp[1] REPL both because SLIME was more powerful than the clisp repl, and because it worked with other implementations like CMU CL (which sbcl now is a fork of).

I mostly just used the menus for interacting with emacs, but since the shortcuts are listed beside commands, I did learn the more commonly used ones.

I continued like this for years until I discoveredevil-mode[2], which was the first thing close enough to vim to be usable for me (and even then I had to add a few keybindings that it was missing).

1: clisp is a specific implementation of common lisp, not an abbreviation

2: https://github.com/emacs-evil/evil

What parts did you find difficult?

When I first started, I found the keybindings odd, but now I love them since the core set of shortcuts—C-a, C-e, C-f, etc.—work "everywhere" from the terminal, to GNU readline-based programs, to even native macOS text boxes. If you don't like the default keybindings, you can change them or use the Evil package [0] for Vim bindings.

If you want to get up and running quickly, I'd check out Doom Emacs [1] which is easier to configure and takes care of a lot of configuration for you. I personally use a reasonably-minimal config I wrote myself [2]. If you like to tinker, I'd recommend writing your own config, as it will also teach you a lot about Emacs.

If you have any questions feel free to reach out—contact info in my profile.

[0] https://github.com/emacs-evil/evil [1] https://github.com/hlissner/doom-emacs [2] https://github.com/jonpalmisc/.emacs.d/blob/master/init.el

  > Well, there's a lot of games inside emacs
There's a text editor [1] available too.

[1] https://github.com/emacs-evil/evil

Don't get me started on the Evil Mode emacs users, trying to have it both ways.

https://github.com/emacs-evil/evil

Well yeah, emacs users are elite :)

If you really prefer the vi syntax, there is even an "evil mode" for emacs - https://github.com/emacs-evil/evil

Spacemacs uses “Evil mode”[1], which is available just as a regular (MELPA) package. I started with Vim and so I’ve always used evil. “Vanilla” emacs, spacemacs, now doom.

[1] https://github.com/emacs-evil/evil

Compared to many I am a relatively new emacs user, back when I began programming I let myself get intimidated by the scary stories told about Emacs and Vim configuration. Turns out a huge emacs configuration is not needed, in fact I notice my emacs config actually started to become smaller over the recent times. It's hard to express how much I value emacs now and the only regret I have is that I did not give it a chance earlier when I still exclusively used "modern" editors and IDEs.

Another aspect I see rarely mentioned is the emacs evil[1], it basicelly provides a full vi layer, it's much more than your average "vi keybindings" plugin. Emacs vs Vim? Not a question I have to give any thought when I can use both and switch between them without much effort.

[1]: https://github.com/emacs-evil/evil

For the keyboard shortcuts, there's ergo-emacs [1] a minor-mode that already rebinds most of the common shortcuts (open, copy/paste and so on).

Or, if you like vi(m), evil mode [2] should be good to go.

[1] https://ergoemacs.github.io/

[2] https://github.com/emacs-evil/evil

I've never been a vim user, but regarding keyboard shortcuts, there's Evil[1], which is fairly popular.

1: https://github.com/emacs-evil/evil

If you know VI I'd recommend Evil Mode: https://github.com/emacs-evil/evil

Helm is pretty amazing and almost worth the cost of Emacs by itself: https://emacs-helm.github.io/helm/

As others have said, the tutorial is the best place to start (C-h t). After that for any other thing you need to learn in emacs the info will probably have it (C-h i or M-x info). Emacs users usually spend much time configuring their “operating system” till they’re satisfied, by modifying the init.el, but you can get a popular config already made [0][1]. My biggest recommendation after understanding how emacs works, if you use/prefer vi binds, is install evil-mode [2]. It’s essentially a vi layer on top of emacs, and is very functional.

edit: If you use MacOS, Yamamoto Mitsuharu‘s emacs-mac [3] is my recommendation, as for linux the version from your distros package manager should be apt. ;)

[0] https://github.com/hlissner/doom-emacs

[1] https://github.com/syl20bnr/spacemacs

[2] https://github.com/emacs-evil/evil

[3] https://bitbucket.org/mituharu/emacs-mac

I switched to emacs in 2019 after using primarily vim for 12 years, and I think it's more than worth it. It's not an editor, it's not an IDE, it is kind of like an operating system where you can have a text editor, debugger, notes, mail, whatever you want. If you dig that, you'll love emacs. It's extensible in a way you've probably not experienced anywhere else, so if you like honing your tools so they fit the way you want to work, emacs is for you. I've actually come to long for an operating system that gives me the same "interactivity" as emacs does.

Of course, I edit text in emacs with evil: https://github.com/emacs-evil/evil

Alternatively, running "M-x gdb"[1] within Emacs configured with Evil[1] for Vim keybindings[2]. Running a separate program is a pain, and it won't have config from your .vimrc, but the tight integration between GDB and Emacs is really nice.

[1] https://www.gnu.org/software/emacs/manual/html_node/emacs/GD...

[2] https://github.com/emacs-evil/evil

You make a good point, and I was similarly disappointed in the homepage, so let me elaborate a bit on why I use it:

1. I want a Git log viewer right in my terminal, that gives me most of the benefits of visualizing a Git log like a "real" GUI.

2. Fast startup. I work in dozens of Git repositories a day, many submodules, etc. To visualize these effectively, I want to type a few characters in my terminal and see the Git history in a digestible way.

3. This essentially `git log --graph --pretty` with the ability to deep-dive into a single commit view of `git log -p` with nothing more than a stroke of the return key. To exit, I hit ESC.

4. Vim-like bindings in a Git viewer. Every visual app that I use daily in my terminal has "roughly Vim" bindings, from Emacs (https://github.com/emacs-evil/evil) to Zsh (bindkey -v) to Tig.

5. This is just as fast to start as `git log --graph --oneline`, but I get a fully interactive view of a Git Repo history. For example, the Linux source [1].

Perhaps I should compile my thoughts and send some README updates and screenshots to help the project.

[1]: https://i.imgur.com/yd7cSd1.jpg

> Seeing a former coworker use Magit in Emacs is what got me to look into the Vim version

What you should have done is use magit and looked into the emacs version of vim: https://github.com/emacs-evil/evil

You can try Evil mode which gives you vim keybinds in Emacs: https://github.com/emacs-evil/evil
Vim users used to, but now that emacs has a decent text editor[0], they can't.

[0]: https://github.com/emacs-evil/evil

Have you heard of Evil?

https://github.com/emacs-evil/evil

IMO - and I speak as someone who loves Emacs so much he has email, organisation, TODOs, calendaring, IRC, RSS and more in Emacs - vi actually does a better job of the mechanics of text editing.

Evil gives you the best of both worlds - the Emacs platform, and vi editing.

Or you can use things like evil [1] to have your vi-style modal editing and eat your Emacs cake too.

[1] https://github.com/emacs-evil/evil