Give yourself a full day for the tutorial and then try to stick to it even though for a while you will be slower and clumsier at everything. This will pay off massively.[0]
Make it part of your routine. Apart from coding in it, use it for email (mu4e/offlineimap), for git (magit), as a local and remote file manager, for writing notes and running a diary (org mode), for submitting papers (LaTeX/Auctex), for your terminal...
Speaking for myself, it actually improves my quality of life, and I feel like I've only scratched the surface.
[0] https://stackoverflow.com/questions/10942008/what-does-emacs...
Work on the tutorial, then spend about half an hour to a hour writing some text and code, so that you get used to interactions. Save a couple of files. Open a couple of files. You should be now comfortable enough to do basic work in Emacs. From there, it's practice, reading and exploration.
The cool thing about Emacs is that it's self-documenting. CTRL+h is your friend (in Emacs-speak, C-h). You remember a key combination but are not sure what it does? C-h k key-combination. Remember a function but not where is it bound? C-h w command, or C-h f command - the latter will give you a full documentation of it (and works for other elisp functions as well). Sorta-remember the command? C-h a whatyouremember - will run a regexp search on a list of all commands. Don't remember neither the key nor the command? M-x apropos whatyouremember - this will run a regex search on everything.
Also, the full documentation for Emacs should be available under C-h i. Or, if you are serious about Emacs and have some money to spare, I can recommend this book: https://www.masteringemacs.org/. It will get you up to speed in no time.
Beyond that, Google around. Look for Emacs guides, interesting packages, and interesting Emacs configs (search terms: .emacs, emacs dotfile). They'll introduce you to various productivity and life quality features for which Emacs is so loved.
--
[0] - they're weird because they predate the modern fashion. What you're used to came later, from IBM, and was popularized Microsoft.
A couple years later our vi friend expressed interest and did the same thing. His monitor was littered with little post-it notes until the muscle memory kicked in.
You might be thinking, is it really worth my time to learn something esoteric like Emacs, but there are many nice perks once it's been learned. It turns out the default keybindings in readline (and every program that uses readline) are Emacs keys, so it's a exciting feeling realizing you just hit C-t in some random program and it transposed the characters like you wanted. macOS also has many Emacs keybindings in the default text field (where they don't conflict with standard mac keys).
Okay, more seriously, it took me about a month to stop hating Emacs in 2002. I only started because I thought I had no choice. I was a math undergrad, I wanted to write math, and they plopped me in front of Emacs and LaTeX running on Debian. Alright then, I'm here to learn new mathematics, so I'm also going to learn new ways to type mathematics. This is just how we do things in university, I thought.
Fifteen years laters, I haven't stopped using and learning about Emacs. I can't do any serious writing without it.
So, my advice is, if you don't want to keep learning Emacs forever, just stay with whatever you like right now. As a general rule, the Emacs faith does not proselytise. Some of us tolerate Emacs, but you'll have to try it yourself to see if you do.
Well that's too bad, as people have done some serious writing using simper tools - a pen, a typewriter... Isn't Notepad (on Windows) a sufficiently good tool to type, say, a novel in? Less distracting it is, for sure. (Well, I heard some people say that Notepad requires an OS to run, whereas Emacs is an OS in its own right, but really?)
I can use something other than Emacs if I have to, but it all feels like I'm tying both arms behind my back and writing with a pen held in my teeth.
I came to Emacs from decades of using vim. I installed evil-mode, and then spent about 10 hours a day for about 3 months learning more, installing packages, and tweaking my config until it matched and exceeded what I had in vim.
This is a never-ending process.. and now, about 5 years later, I'm still learning and still tweaking (though my config has been mostly stable for a long time).
I wouldn't necessarily recommend Emacs to someone who's not willing to put in the time and effort to make it in to the editor they need... though they don't necessarily have to spend as much time or effort on it as I have. Everybody has different needs.
Fortunately we live in an age of plentiful, easy to get information, so if you are interested then learning more is just a few clicks away. I'd recommend joining #emacs on the FreeNode IRC network, r/emacs on Reddit, and the Emacs StackExchange. The people there can give you lots of pointers and detailed help when you need it.
I'm now using Emacs for everything: shell, git, email, file browser, window manager, IRC, slack, as a pdf reader, ... oh, and to edit text files.
My advice is to keep using it. When you notice that something is really weird, run `M-x package-list-packages` to see if someone has already written a package to change the weird behaviour. Ask questions on emacs.stackexchange.com, but also ask Emacs; use C-h to learn about why things are the way they are.
If you don't understand why people love Emacs, consider reading this:
https://elephly.net/posts/2016-02-14-ilovefs-emacs.html
Give it a try some time again. Or not.They're mostly old. So I guess they might be hostile to the young. I actually dislike some of the newer things like transient-mark-mode. I don't want all of that highlighting just because I have a selection region, and was quick to disable it when they enabled it to make it more "modern":
http://inversethought.com/hg/dotemacs/file/f029c55c6221/dote...
I've been using vim for 15 years or something but its default is insanely hostile that the default hotkeys aren't even funny. You'd even feel wet that you can save a file with just 2 keys under Windows in Notepad compared to 4 keys that's not exactly intuitive until your muscle remembers it or modify it to something sane. (I use a single 'space' under command mode to save.)
I wouldn't try to learn everything at once would just learn:
1) How to quit 2) How to save a file 3) Basic navigation: up, down, left, right, end of line, beginning of line 4) How to cut a line, and how to paste a line
Some of those you might already know from using bash or even basic text editing on macOS.
But I won't be switching simply because indentation in html/css/js files is off and apparently Emacs is bad at handling stuff like jsx and web stuff in general. Shame.
Patience, mostly. Emacs takes a very big up-front investment, but it pays off in the long run.
> I got irritated pretty soon and gave it up
Yeah, that was my first experience, too. ;-) Don't rush yourself. Come back every couple of months and give it another try. Work your way through the tutorial, and if you feel like it's just too hard, don't listen to yourself. You will be amazed at what you can achieve on determination and persistence.
Also, there are IRC channels and discussion boards waiting for your questions. Do not be afraid to ask "stupid" questions. More likely than not, people will be happy to help you.
Last but not least, emacs comes with pretty good documentation. Learning how to to use emacs' online documentation, both the texinfo manual and the online help, can get you surprisingly far.
Once the basics have been learned I think there's also an implicit assumption that the user hacks on emacs (or at least their init.el) to make the things they do easier. In a sense emacs is a make-your-own-IDE-toolkit -- pretty much everything about how it works can be changed if you like.
Key point is you can program it to do what you prefer.
I keep hearing people mentioning vim and emacs but I have a strong suspicion that if people spent the same time that they now spend learning and customizing vim and emacs learning a more modern IDE or advanced editor they'd be even more effective (except when they need to edit over ssh).
Personally I use Visual Studio Code all day now. But I've also been happy with Netbeans, IntelliJ, eclipse and Sublime. I rarely have to use a mouse or touchpad, it's all alt-tab, wait-a-second, alt-tab, edit, ctrl-s, ctrl-p type parts of a filename, ctrl-arrowkeys, F2 enter new name for a variable or field etc etc.
I've done one honest attempts at learning emacs (and I kind of enjoyed it) + lots of involuntary training on vim (yes, I prefer it to nano).
Or except if they need to blog. Or manage repositories. Or manage tasks. Or read e-mail. Or...
The thing with Emacs is that it offers you an universal, consistent interface for everything text. That includes code, but also prose, notes, tasks, repositories, file systems, etc. The interface itself is also hugely extensible (with lots of packages readily available through built-in package manager), and all that extensibility works for everything.
IMO, spending more time in a typical IDE will make you a more effective programmer. But it doesn't extend beyond programming. When you do something else, you have to switch tools. In this way, spending time on Emacs has a better payoff, because the scope is both deeper and broader.
This. As my programming career extended past its first decade, I began (like many people) to feel the fatigue of constantly adapting to new editors, email readers, file managers, etc. The long-term _consistency_ of Emacs gives me an anchoring point and frees me to pay attention to deeper patterns - data structures, architectures, concepts - things that matter more than the tooling du jour.
I feel that acutely.
Emacs is shit because despite its age, it does not even meet some sane minimum requirements for text editors. No localisation. No tabs. Window cannot be maximised prior to setting some obscure option. Menu items and buttons do not have underlined letters (i.e. accelerators). The vast majority of the options cannot be accessed through the menu or dialogues, instead you get a non-editable document with embedded buttons. Configuration is stored as code. Keys cannot be rebound from the menu.
The list could go on and on. I am thoroughly disappointed with the software, I wouldn't recommend to anyone expending patience on it.
pls don't say that :( there's exactly 0 ppl in the world who get paid for writing emacs. nobody is selling the editor as snake oil liniment that ought to remove all the grievances.
> No localisation
what do you mean? I can read/type in emacs in all 3 human lang I know/use daily.
> No tabs
true
although `M-x speedbar` can display the list of all open buffers in a vertical fashion
> Window cannot be maximised prior to setting some obscure option
I usually just press F11
> Menu items and buttons do not have underlined letters (i.e. accelerators)
true
> The vast majority of the options cannot be accessed through the menu
true
> or dialogues, instead you get a non-editable document with embedded buttons
why do you care if it's not a 'native' dlg? the mouse works. C-s works.
> Configuration is stored as code
hehehe
that's the whole point, m8!
> Keys cannot be rebound from the menu.
true
> The list could go on and on
I was hoping you'd mention the idiocy (I cannot find a more proper word) w/ buffers that have long lines. every time I open some 2MB xml file that was generated as 1 string, emacs suddenly becomes dog slow. this is what should be criticized, not the inability to rebound keys from the menu, imo.
> there's exactly 0 ppl in the world who get paid for writing emacs
I, too, am a free software author in my spare time and not paid for it. Not being paid for a labour of love does not make one exempt from criticism.
>> No localisation
> what do you mean?
The software's user interface and on-line documentation should be implemented in my language, but it's available only in English.
> M-x speedbar
That displays a hierarchical file browser in a separate window, not a list of documents.
>> Configuration is stored as code
> that's the whole point
Occasionally the sheer power is useful because a programming language gives you the power to do things that are not possible or very hard otherwise.
But for the vast majority of cases, most of the time, configuration should be stored in the moral equivalent of an INI file. That way I can process it externally. As it is now, I need to code a parser for elisp and replicate a decent chunk of the emacs runtime environment. That's just too difficult and time-consuming for anyone.
Very much related: http://www.cs.dartmouth.edu/~sergey/langsec/occupy/
Turing-completeness should be the exception, not the norm, and only used when actually needed, not for trivial cases.
> long lines […] emacs suddenly becomes dog slow
Many editors have that same problem, so that one doesn't bother me much.
> Not being paid for a labour of love does not make one exempt from criticism.
I'm fine w/ criticism; I'm just of an opinion that the word "shit" is a bit too much; also I'm fascinated how the current emacs maintainer handles such a complex proj
> The software's user interface
which part? the majority of the user-visible 'interface' consists of so called interactive elisp cmds (runnable via M-x ...); the help for such cmds (or the whole modes) gets extracted from the corresponding fn comments & gets updated in real time when/if the code changes.
> and on-line documentation should be implemented in my language, but it's available only in English.
this is tough. the user's manual is huge. it'd probably take a year for a pro translator to produce a meaningful result
the elisp manual is even bigger
the tutorial is available in multiple lang, though
>> M-x speedbar That displays a hierarchical file browser in a separate window, not a list of documents.
click w/ the rigth btn in the speedbar win: a popup menu will appear. select speedbar->displays->buffers
Didn't give up.
Use what you like the best.
I use Emacs for some tasks, but for example, for Android development I use Android Studio, because that is more suitable for the task.
(BTW, default Emacs is very foreign. I wouldn't use that. It takes a while until one configures Emacs to one's own taste.)
A car with a steam engine inside!
I have spent a lot of time using it, still irritated.
2) commit to it for a few weeks and become proficient
3) keep learning
Damn, I've been using it for a bit over 21 years and was hoping that I'd almost gotten a handle on it! Oh well, might as well resign myself to it.
Only yesterday, I installed emacs and spent half an hour on it. Even opened a tutorial to learn the basics.
But I got irritated pretty soon and gave it up. Now I am thinking about people who use it like a pro. How the hell did they master this beast?