Hacker News new | comments | show | ask | jobs | submit login
Why I Use Emacs (shayelk.in)
45 points by snotrockets 1300 days ago | hide | past | web | 40 comments | favorite

I don't like Emacs. Emacs key-bindings are neither ergonomic nor do they make any sense in any way. They are barely consitent across modes, only if you are lucky. They are the way they are because they are old. And old people don't like change. Emacs has also several other problems. It lacks multi threading, the cursor can not be moved off screen. Autocomplete for C-like languages is a mess and really inferior to everything else I used. Compared to all other Lisp dialects, Elisp is the worst. It is not only by far the slowest, it also lacks essential features like namespaces. And then there is complete clusterfuck of conflicting "modes" and the lack of disposition to cooperate and unify within the community.

The reason why I'm so upset is, if you are a newcomer and look at Emacs what you see at first glance on the outside is basically total crap. But then people tell you that the learning curve is high and everything is awesome if you just learn.

Well my experience was, the more I learned the more crap appeared. One layer of crap after the other. Luckily everything could somehow be fixed with a lot of configuration and scripts. But the points I mention above are the lowest layer which can not be fixed with just a bunch of lines of Lisp like in the previous layers. So even at the core Emacs is crap.

It sounds like you were kind of against it from the start in which case you would never end up liking it. There is a huge learning curve and, to make the most of it, you really do need to learn Emacs Lisp. As for keybindings, you are free to remap them to whatever you want. Sublime's keybindings aren't exactly normal either and go against a lot of the standard keys for operating systems (I'm basing that off of Mac since that's what I use). I don't find them bad ergonomically, especially after setting the option key to be "meta". I actually prefer the Emac's keys in other applications like IntelliJ and AppCode.

I'd have a hard time using Emacs for a large project, especially one that is contributed to by many different people. IDE's just make life so much easier. The people who disagree with that statement are typically the Emacs (or VIM) gurus who have customized it so much that they would probably die if they had to use a stock installation.

Modes definitely add complication, but again, that's why Emacs is so customizable. It takes time, but you can set things up to where it's the best experience possible.

I do totally agree the key-bindings are neither ergonomic (they're actually inducing RSI issues) nor do they make any sense in any way, which is your first point.

However this is trivially fixed because in Emacs everything is configurable. Keymappings are very easy to change (I'm using my own, completely custom ones, in my own keymapping minor-mode). There's also the "evil mode" reproducing the very superior (compared to Emacs) vim keybindings. So it's not true that they cannot be fixed. Not only can keybindings be fixed but a) they should and b) it's trivial to do so.

I'm using my own minor-mode which contains all my keymappings. Doing it that way you'll hardly ever have conflicting shortcuts.

evil-mode is an option too for people who want the (way better) vi(m) keybindings.

Once you change keybindings, all documentation you find online doesn't apply anymore. Emacs has a large and active community, which I consider one of its main advantages that I don't want to lose.

That being said, Emacs has already forced me to re-learn basic things like copy/paste and search/replace. I don't want to question my workflow on such a low level in 2014, when there is much higher-level IDE stuff to learn (code completion engines, refactoring, "jump to definition"). Alas, such features are not language-agnostic, they are tricky to set up and not standardized.

I find discussions about keybindings quite derailing from the higher-level discussions we should be having instead.

I am using evil-mode since i switch from Vim to Emacs and i am obsessed. Don't get me wrong , VIM is well VIM (awesome!), but some emacs plugins are more polished that VIM's ones and i can't stand vimscript.

Which ones? I had the exact opposite reaction to trying to use evil. I liked it, I like lisp, but the plugins where so crufty and sensitive. I got most of what I wanted working, but never got good tags support working, never got good generalized fuzzy finding working (tags, buffers, files), and never got used to the "culture shock" when I dropped out of evil mode in another buffer.

But you like sucky elisp?

IMHO is better than sucky vimscript.

You can always use god-mode if you don't like holding C so much. Then you can just hold p or n to move the line.


As in other editors the key-bindings are completely customizable. E.G. I rarely use the arrow keys. I use WASD and UIOJKL crosses for different levels of navigation of code and projects. Intuitive? No. But very handy once you get used to it.

I agree with the language support. There might be better editors for every single language. But overall its the editor I like most of all I tested and used.

I don't know LISP very well and can't compare the speed to others. Yet emacs feels snappier than all the modern editors I've used. Probably just because it doesn't use fading effects and such nonsense.

And I'm not some beardy programmer from the punch card ages. Hell, the editor is older than me. But I do configure the shit out of tools I use every day. On that road, I haven't come to any limits in emacs.

I would never recommend it for a newcomer nor to people that want out of the box solutions for a specific domain.

I dislike the default emacs bindings. I use EVIL (vi bindings) so I get most of the normal usability, but with better extensibility (vi can't compete with SLIME) and much better config files (vimscript is terrible).

I've tried just about every editor under the sun. I keep coming back to emacs. It Just Works, it's flexible, it's configurable, it doesn't impose any particular workflow on you, and it's basically everywhere that I need it -- terminals, GUIs, unix, linux, OSX.

I most recently tried sublime text, and it was okay, but it fell over in some pretty serious ways with basic stuff. Like indenting -- I'd have to go back and find the problem again, but there was a ridiculous indentation problem that was a deal-breaker, and the response from the ST community was, essentially: "I don't know anyone who indents that way, so we're not going to support it."

OK then. Back to emacs. It Just Works.

"... its various Ctrl-Meta key-chords will seem not merely satisfyingly ergonomic for the typical arthropod, but also direct evidence for the universe’s Intelligent Design by some six-legged, multi-jointed God.”

It just feels good. Do it today!

Two links away that led me to http://mph.puddingbowl.org/2010/02/org-mode-in-your-pocket-i... which is hilarious and very true. Source committed emacs user, I've contributed to org-mode, and it is great. But still, true.

Hello. The keybindings file I use in OS X for simulating some Emacs behaviour, was too long to be saved as a comment. Below are references for how to make Emacs like shortcuts that works through the whole OS X, at least through all programs that uses the Cocoa Text System. Xcode got its own system. BBEdit uses its own, and at least the Omnifocus programs I use, also use their own.

     * References:    
     * https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/TextDefaultsBindings/TextDefaultsBindings.html    
     * Above is Apples Documentation on the subject which is Mandatory reading!    
     * Mandatory reading as well: http://www.hcs.harvard.edu/~jrus/Site/system-bindings.html    
     * This page lists Apple's keybindings and standard keyboard functionaliaty to a further extent than Apple's documentation further above.    
     * A Must read concerning customizing the cocoa text system: http://www.hcs.harvard.edu/~jrus/site/cocoa-text.html    
     * *Very Useful Page* when you want to make your own bindings: http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Windows%20Bindings.dict    
     * http://www.cocoawithlove.com/2009/12/multiple-copy-buffers-cursor-and-tab.html    
     * Above mostly for how to utilize the kill-ring, which doesn't work well with the setup here,     
     * and it is focused towards XCode, which has it separate keybindings file, but works after the    
     * same principles. Beware: XCode uses a string list, instead of array. It is important to     
     * keep the space after the comma!     
     * "select:", "do someth:"    
     * http://wttools.sourceforge.net/emacs-stuff/emacs-keybindings.html    
     * Above is a keybindings table, which is of use only to see the keyboard shortcuts.    
     * The commands we use on OS X is not named equivalently to Emacs.

Why not Aquamacs?

I have my keybindings work everywhere, in Spotlight, I can captialize, or lower case words everywhere, and such, I have and extra yank/kill buffer apart from the paste board. It is not about the editor really, it is more about the whole user interface, and I use BBedit for editing, which doesn't use it. But sometimes, it feels very good to just use TextEdit, and have a multi-window environment for writing small texts, and to set a mark and such, when the text grows longer. All that kind of stuff that I feel making the work more fun. :)

Java guy here. I've never understood how retro types can criticize IDE's, relative to the "clean, simple elegance" of a text editor... and then reveal that their text editor is Emacs. In terms of learning curve and simplicity, IntelliJ might as well be "ed" in comparison to Emacs... or even Vim to a lesser extent.

I spent years using Eclipse, and even though I now concede that IntelliJ is superior, it still took quite awhile to get up the learning curve and let go of my Eclipse bias. If you write a lot of code in any language, then you invest a significant amount of time and energy into learning how to maximize productivity in your tool of choice. That tool is then the best tool, because you are invested and most productive with it.

I don't think cleanness, simplicity, elegance, or learning curve are ever the advantages touted by Emacs users. It's all about extensibility and customizability.

This. As the saying goes, "It's a tool, not a Jewel": pick one that can do what you need, and stick with it.

Emacs is a text editor that makes it easy to build your own IDE.

Fair warning: I'm a sysadmin.

My basic attitude has been unchanged for fifteen or twenty years now: programmers need programmable editors because they can be more productive when they are comfortable; sysadmins need an editor which is installed on every system and works the same way by default.

emacs is pretty good, and was what once heavyweight is rendered small and fast by the march of technological progress. But if you, as a programmer, want to devote yourself to becoming an expert in something else, go right ahead.

I've never tried Emacs, but tales of the unergonomic nature if its keybindings have steered me far far away. On a side note though the author wrote "I don’t think I could learn another set this side of river Styx." and I just find myself really liking this expression. Cheers!

I'm going to paint with a broad brush here, but usually it seems like emacs/vim (chosen here to represent broad categories of editors) evangalists haven't given a whole lot of time to try out the other side.

I'd say it took me only a few minutes to get the hang of vim, but several weeks of regular use to really appreciate it. I have never given emacs the same opportunity simply because I've never felt the need to leave vim. But I certainly would do so before I recommended vim over emacs to anyone else.

I gave Sublime four months; and in those four months, I only used Emacs once on a remote machine.

I really did try, but the experience left me wanting, and made me realize I'm never going to try another editor ever again: I'm just not ready for another four months of hate directed at my main working tool before I'll revert to the One True Editor™.

Why does stuff like this get so high on HN all the time? It isn't news, emacs has been around for approx forever and obviously is a good editor slash operating system for all the serious devotees. What do these pieces add? Literally never will the "vim vs. emacs" thing be resolved if it isn't now. Note to self, write a piece about how "I use <editor> because I know how to use <editor> well" if I ever want to be big on hn.

Bonus points if you can tie <editor> to the NSA or Bitcoin.

I too miss the downvote button.

I like this post for many reasons. One of them is introducing me to the word retrogrouch

Emacs is good, man!.

Apparently emacs is excellent in defend-mode.

tl;dr: Emacs is forever, because I got used to the key-bindings.


You'll hear similar things from vim users. And for those of us who use neither, we also like what is familiar, and it may keep some of us away from both emacs and vim.

(As a vim user) I like to think that the keybindings actually make sense. There are tons of articles out there about the verbage of vim commands. Once you get used to the vocabulary vim makes a lot of sense. (But it could just be Stockholm syndrome for most of us)

As someone who spent about a year getting used to VIM, I can actually document the progress of Stockholm Syndrome in my own chat history.

The first few weeks are filled with things like "Why is (d)elete cut?! I want to delete it, not put it in the buffer! And why do I have to push 'd' twice? This is stupid." or "Who thinks (w)rite makes more sense than (s)ave?"

But then over time, I started internalizing the commands and whenever someone else would echo the same complaints back to me, I'd usually find myself responding "Well, vim is pretty old, so you have to forgive it for not being up on modern terminology. If you just remember the keywords, it usually helps a bit. Plus a good configuration makes it a lot easier to use!"

Now I'm at a point where I find myself hitting ":wq" more often than not regardless of whether I'm actually in vim... and I started looking up ways to use vim keybindings in Sublime Text.

im not very good in vi or vim or emac but it essential to me debug, alter certain code using putty if network very slow.if network connection is okay,i prefer edit it via winscp.

What's so strange about that? Being comfortable and efficient with key bindings is crucial to programming.

TIL why people add those redundant "Conclusion" part to their posts.

Ugh. For the sake of completeness, then, let me add mine here:


From time to time, a new editor is being hyped. It might have a good list of features, in a shinier UI than your current editor: but unless it clone each and every feature you use, you'll probably just waste your time trying to get used it to it, and it's better stick to what you're used to. Remember, it's a tool, not a jewel.

Hah, that basically does some it up. This post isn't very front page worthy as it has zero content with the exception of emacs being more extensible. The author should have given some specific examples about which things Emacs can do that others like Sublime (and others) can't. In the end, use whatever editor makes you the most productive.

Applications are open for YC Winter 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact