Later, I tried picking it up again, but this time chose spacemacs. Hoooly crap, what a difference.
1. Discoverability. The helm UI is better than any docs, since it's there when and where I need it to find the thing. It also provides the ability to search for arbitrary commands, which is great when you're learning a new mode or layer.
2. Modal editing. I wasn't a vim user before, but spacemacs has converted me over to the modal editing camp. It makes a ton of sense now and is a joy to use alongside Emacs' power.
3. The layer system is way easier to use than ELPA directly and takes most of the pain of configuring packages away.
For someone who wanted the power of Emacs without having to touch the insides, spacemacs is wonderful and has fully converted me over to using it everyday!
I just ask because with vim, I can easily describe why I like it - it has about a billion cool and useful text-editing features arranged in a way that makes them easy to use. I understand Spacemacs replicates basically all of these features - but what's emacs adding to this? I've tried spacemacs several times, and each time I've been stopped by not really being able to find anything, aside from org-mode, there's nothing there that justifies the (relatively) slow loading times and generally heavier overhead of emacs.
1. Text editing (obviously). spacemacs provides nearly any nifty trick that vim would give you for text editing (and like I said, I'm a believer in the way of modal editing).
2. HTTP client. Emacs has a package called "restclient" that allows you to write what amount to cURL commands - in plain text, with documentation - and execute them in-line within my editor. Other teams I've been on use Postman, which is great, but I like the fact that I can save the file and commit it alongside our services/tests/etc.
3. Note taking & task lists. Org-mode is Emacs killer app. Honestly, I'm still pretty fresh to this whole "being organized" thing. But already I'm finding myself writing more and more notes, TODOs, etc. and it's really helping me on a new project that is complete chaos right now.
4. Clojure IDE. Cursive for IntelliJ comes close, but nothing beats the experience of doing Clojure development in Emacs. Since my team adopted it as our daily workhorse language, I've never had a moment where I wanted to leave Emacs. It's integration with the REPL and LISP in general makes it the most powerful programming environment I've used to date (YMMV).
There might be more... the point is that Emacs is more like an application platform than a text editor, and it has some really powerful applications that have been developed for years. I now have this strange urge to do more and more inside of Emacs, if only because it gives me a common interface into my workflow.
EDIT: Forgot, magit for doing git operations. Great interface and I only (very very rarely) need to drop down to terminal to do things now.
It's why the vim vs. Emacs "war" isn't really a fight over text editing, but an ideological battle of "one tool that does one thing well" vs. "one tool that has everything I ever need."
Personally, I find integration a huge selling point, and the Unix pipe interface leaves a lot to be desired. Writing some elisp code, or (preferably) installing a well-documented layer/package, is preferable to me. The specific tools I need also happen to be well supported in the Emacs ecosystem.
It doesn't. But thinking of Emacs as a text editor is like thinking of Firefox as a document displayer.
>Like, why do you want an HTTP client in your text editor when you already have wget, curl, nc, etc available in your shell?
There's a reason to prefer using these in Emacs over the shell. It is because Emacs is a better embodiment of the UNIX philosophy than the UNIX shell itself is:
>Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
A lot of standard UNIX tools are laden with features. But well, that could be said of Emacs as well.
>Expect the output of every program to become the input to another, as yet unknown, program.
Emacs does this much better than the UNIX shell, in my experience. The level of consistency you see in the Emacs ecosystem just doesn't exist in UNIX. With UNIX, you really are feeling like you are gluing stuff together. With Emacs, it feels much more natural.
The loading times aren't slow if you run it in daemon mode (as I do now) or strip down your .emacs file to its core (so you only load what you need for the files you're editing).
Org mode is great and can do an absolute ton.
Magit is the best git interface I have ever used and I have used a ton of them.
Evil mode is an almost complete vim and I consider myself to be a pretty power vim user and have used it for many years.
Helm is amazing at searching through lists of things and enables other things like swoop(also amazing) which takes your file and puts each line into a temp buffer and let's you search for lines in that file. Say you wanted lines matching foo and bar all you do is type 'foo bar' and it updates the list of matches in real time. If you move your cursor over any of the matched lines it jumps to the context in the file. If you hit escape it goes back to where you initiated the search, if you hit enter it jumps to that line in the file and dismisses the dialog.(actually a temp buffer that you can edit later if you wanted.)
irc, terminal, email, a slew of other things that are treated as normal buffers that you can use all your normal editing commands in. The entire editor is introspective and customizable as everything is a function that you can bind contextually and most are written in Elisp.
That's the power and I am really only scratching the surface. Hop onto the spacemacs gitter chat and ask any other questions you have.
Edit another invaluable one is 'which key' that tells you what the next available key strokes are once you press something that is the start of a multi key chord. In spacemacs this is used to great effect with the space bar starting most of the non vim leader keys actions. These are also easily remembered because they usually start with the same letter as the idea. 'Spc b' is the menu for all the buffer actions. Spc p is projects, Spc f is files, Spc a is applications, Spc s is extra searching functions.
Every command, even pressing a letter, has a corresponding function. Utilizing ELisp you can essentially make the editor do anything you want (and because of that and how long it has been around...everyone has already made it do anything you could want).
It will become different things for different people, to the point where it may be barely recognizable as Emacs. That is the power of Emacs. It can be whatever you want it to be.
If you've used the Ipython notebook (i.e. Jupyter), realize that Org Mode had much of that capability before the notebook existed - and it works for many languages, as well as across languages (you can send the results of a python code block to a C++ code block). When I wanted to learn Haskell, keeping notes in Org Mode was great. I would put in a code block, and add notes on what the code would do. Any time later while reading my notes, I could interact with those code blocks and fiddle around with it to check that my understanding is correct. I then exported the file to HTML, and I now have very nicely formatted notes for Haskell (or C++, or whatever language you like).
I really should try Spacemacs. I'm quite curious to see how the two mentally compare. For me a huge thing about Kakoune is seeing the selections ahead of time - Vim always had me guessing at what a delete (or w/e) action is going to do. Kakoune makes that so nice.