What is the best way to actually learn emacs? I'm a vim guy who is curious enough to switch but I'd rather just hack the introductory process and get to the fun bits.
I read the built in help and the recommended parts didn't take too long (30 - 90 minutes somewhere I guess).
Used the GUI version (the menus are usueful for reference when I started) but learned the new copy / paste keys instead of using Windows standard and generally try to pick up every shortcut.
I've tried a few "distros" and found one I liked. I also spent a little (too much?) time on implementing org-mode, mostly according to http://doc.norang.ca/org-mode.html
Wouldn't use it for window manager though for roughly the same reasons I wouldn't use the tractor to go shopping with the family.
(Background: I've used vim for configuration for the last few years and ST2/3 + Netbeans for developement, never touched emacs before last fall except by accident.)
The most interesting cultural observation thats not often talked about is bare emacs and bare vi are equivalent-ish, but all the "cool" stuff in emacs is in the addons.
If you just use bare emacs you'll think its pretty boring and not see any productivity gains.
If you use a pre-packaged set for emacs, you'll be utterly overwhelmed trying to learn a million things at once. There are no pre-pack sets with just systemic improvements.
Another cultural thing is there's addons for emacs that improve everything (like helm) and addons that provide one nifty feature (like magit) and addons that are affinity specific (like clojure-mode thats of interest to clojure coders but not likely other coders). So we call them all the same thing, addon or extension or whatever, but there's 3 classes of thing with that name that differ in how you interact with them and they interact with you.
So ... my advice is install your vanilla emacs, put in the stereotypical system wide addons maybe just helm, and then add one package at a time figuring out what they do.
Aggressive-indent rather forcefully indents your code as it sees fit, which some like, others hate. Maybe a good place to start?
So projectile and helm-projectile makes opening files in the same project simple. It understands your git repos and you can open any file in that repo and a lot of other repo related stuff.
And perspective lets to segregate multiple project buffers so however unwise it is, you can work on multiple separate real world projects at the same time.
And flycheck does on the fly highlighting of errors in your code.
And magit does git inside emacs sorta
rainbow-* does colorful syntax highlighting (or drives people nuts)
yasnippet adds tab completion (so "i" "f" "tab" give you a whole if-then stanza ready for editing, depending on your language)
Trying to add all that at once would drive you nuts, so one package at a time till you feel OK with it. I still don't entirely feel OK with magit, whatever.
There's also language specific packages although cider and clojure-mode will be quite useless unless you code clojure, etc.
Learning Emacs is a very interactive process (much as Emacs itself). It's best to introduce new extensions one by one as you need them, and spending some time using them.
I consider myself a noob Emacs user (having been using it exclusively for the last 4+ years), and here's a trick I use if I feel overwhelmed/annoyed by some extension: I decide to spend 30-60 minutes (to the clock; personally I measure it in pomodoros) practicing the mode itself. Such focused learning gives wonderful results. For instance, I spent 30 minutes on learning multiple-cursors.el and now I can't imagine living without it. Or I was always confused by Paredit, but it took about one hour of practicing it to become proficient in it. Again, I now can't imagine working in Lisp without Paredit.
Discovering interesting modes can be a task in itself; I suggest browsing through at least Emacs Rocks short videos[0], they introduce many a handy utility.
@melpa_emacs twitter feed automatically lets you know packages that are under development. That doesn't mean they're any good LOL, but it does mean they're definitely not abandoned.
meta x package-list-packages or something like that and scroll thru 3000 or so packages. I used to do that with Debian in the 90s or so when there were only a couple thousand packages, to see whats new.
HELM input method addon for emacs is interesting. So you hit alt-x and type pac (spacebar) lis and it searches the command list for the regex pac (logical AND) lis and returns the set of scrollable results. Its why I don't remember if the command is packages-list-packages or elpa-list-package-list or whatever, no cognitive need anymore, you want a list of packages you type some of the word package, spacebar and some of the word list, and its right there, ready for up and down arrow and hit enter. And HELM is applied to pretty much everything in emacs, running commands, switching buffers, opening files, projectile addon stuff... pretty awesome. I think it took me about a month to completely break my decades old tab completion habit when opening files LOL.
Just scrollin about the emacswiki finds some interesting addons.
Finally if you install a pre-pack of 50 addons and init file, you'll be blown away, but they can be a nice map or todo list. I think that was how I discovered perspective addon, I'd seen it and shrugged shoulders, but everyone likes it in the lists of pre-packs so I gave it a try, and I really liked it after trying.
AFAIK there is no "emacs addon of the week" twitter feed or podcast or screencast. This would be an interesting microstartup for some bored new emacs user. "Lets play" screencast video series on youtube featuring exactly one emacs extension per episode sounds fun.
> The most interesting cultural observation thats not often talked about is bare emacs and bare vi are equivalent-ish, but all the "cool" stuff in emacs is in the addons.
Agreed. That's pretty much the point. "GNU Emacs is an extensible, customizable text editor."
So it starts off bare but it's extensible and customizable.
That's it. That's the value proposition right there.
Something waiting to be done: a /Handmade Hero/-style webcast by a vim fan who wants to create vim usage within emacs, from scratch. The warm-up week could be a guide to lisp.
I was a heavy Vim user, and what worked for me was forcing myself to use emacs for a project. Other people use evil-mode, but I kept the standard key bindings. Use the help as much as you can, and learn about functions like C-h k and C-h m. I stayed with emacs for org-mode, for buffer management, and then for projectile, magit, flycheck, mu4e, etc etc...
I'm a self-considered emacs user, but I like evil-mode. But I'd also recommend sticking to just emacs when switching (I think 20-30 days of "only emacs keybindings" may be enough) to learn a little about its normal keybindings. It's important to know where you are moving, even if then you change the furniture ;)
I've never tried evil-mode, but I always thought it would confuse me when using things like helm and magit and org-mode that (sometimes) use emacs-like bindings for their controls. Do you run into any problems with this?