I have heard good things about emacs and have dabbled in a bit of vim/neovim. I was wondering if anyone has any good tips for starting to use emacs! I am using emacs 27.1 for Windows 10.
-
4The question is too broad and invites opinion-based answers. This site is about specific Q&A, in particular specific, focused how-to questions. You might want to post such a broad opinion-oriented question on a discussion site such as Reddit.– DrewOct 7, 2020 at 15:51
-
4@Drew: You may have about thirty answers written by different people indicating their approach to configuring or using Emacs. Therefore, these are not opinions but methods.– user19761Oct 8, 2020 at 5:56
-
1It's a legitimate question and is useful to new users. I see no reason to remove it.– QuditOct 13, 2020 at 8:30
-
2We have had debates about "big list" questions before. I do not think we should do big list questions, as they do not fit with SE's format and mission, which is aimed at discrete questions rather than open-ended ones. I cannot close this question until the bounty expires, but will do so after that.– Dan ♦Oct 13, 2020 at 14:51
-
2OP: sorry you got sucked into a debate about question formatting when you're still a new user. The main issue is that stack exchange sites are best designed for specific questions with discrete answers rather than open-ended ones. The latter are answered better at places like reddit, where you will get very extensive answers to more open-ended sorts of questions.– Dan ♦Oct 13, 2020 at 14:53
8 Answers
Do you want to jump right in, or want to take your time configuring?
Distros/Starter Kits
If you want to get productive right away, it's highly recommended to start with an Emacs Distro, as it would usually have a lot of saner defaults, with some even geared towards different types of workflows.
Want a batteries-included experience that's highly-optimized for VIM-emulation? Try Spacemacs!
Want something more minimal than that? Prelude!
There's something in there for everyone. Go check them out.
Roll-your-own
If you're the type that can spare the time to learn about the internals of the tools you're using, you're in for a treat, as Emacs is the self-documenting, extensible editor
. This graphic by Sacha Chua is a good place to start
Few key things to remember:
The key conventions in Emacs are different, C
is for <Ctrl>
, M
is for <Meta>/<Alt>
, etc.
Closing Emacs - C-c C-k
| <Ctrl>+c, <Ctrl>+k
Cancelling commands/Emacs is "stuck" - C-g
| <Ctrl>+g
Open the help menu - C-h C-h
| <Ctrl>+h <Ctrl>+h
Whatever path you choose, I hope you have fun, and happy hacking
Emacs comes with a comprehensive manual which you can open with C-h r
. It also has an interactive tutorial which you can start with C-h t
.
This is one of these topics with no right or wrong answers. Fortunately, you didn't ask which editor is the best one. :-) I myself have been using Emacs for almost 10 years and would still consider myself advanced beginner. As some people say, Emacs isn't an editor, it's a lifestyle. There's truth in this quote, and if you don't get greedy and allow yourself some time to learn things, you will be rewarded with a fascinating piece of software.
There is an awful lot of information, and unless you like to suffer, it's getting overwhelming pretty soon. You can follow these tutorials that explain how to move the cursor in four different ways, but this is probably not what you are looking for. Telling you that there is virtually nothing that you can't do with Emacs won't help you either. Here's how I wished I started years ago.
First, try out some Emacs distributions and stay a while with the one or another. The 'Awesome Emacs' list will give you an overview, have a look at the Starter Kit section.
Find yourself a use case. What do you want to do? Write texts? Develop software? Let's assume you want to produce elegant presentations or get a bit more organized in your everyday life: then org mode is your friend. (A lot of people came to Emacs just because of org-mode.) At some point you want to export your document, maybe you want to give a presentation. This will lead you to beamer or org-reveal. The more you want, the more you (will have to) learn. The reactions of your colleagues will be priceless when you tell them how you did it.
Allow yourself some time to learn. Using Emacs isn't just about how to do this or that, but to learn how this beast works and how to customize it so that it becomes your everyday tool for a growing number of tasks. This requires some healthy amount of curiosity, because you will have to deal with Emacs Lisp if you want to customize Emacs. Some resources for starters: 'Mastering Emacs' started as a series of tutorials and is a book now: highly recommended. Here's an article for beginners. Xah Lee's website tutorial is perhaps a bit opinionated, but nonetheless helpful. And here's a beautifully designed manual (especially the 'Mini Manual'). If you're into org-mode, try these examples.
The more you learn, the more you'll appreciate sites like Endless Parentheses or Emacs Rocks! Have a look at M-x emacs-reddit - there's always something new. You will learn what this .emacs file (or .emacs.d directory) is used for and you'll discover a lot of cool lisp code.
Emacs is an experience that will keep you busy for a while. There is no shame in failing: but if you really want to use and master it, it will change some of the ways you'll look at and deal with things.
Note: This answer is a community wiki, everyone is encouraged to contribute.
- Stay informed
Emacs is constantly evolving: some features are deprecated, new ideas emerge, new applications are created...
- Discover the helper functions
The GNU website has some useful information. The documentation is often available in the Info format: mastering the Emacs Info reader is an undeniable asset. Browsing the built-in documentation is useful to discover some hidden features (see C-h C-h
) and become proficient.
- Know the key concept for the configuration
One of the major challenges is to be able to launch commands and configure applications while maintaining control over the editor. One can quickly be completly amazed or perplexed by the multitude of functions (and other Lisp concepts), commands, user options (parameters), extensions (packages or libraries). Knowing the key concepts also helps to simplify complexity.
- Relativize and keep in mind than nothing is perfect
New features may be developed or existing features may be improved but some are substituted or hard to modify. The pros and cons must also be weighed in order to make wise or essential decisions.
(I can't believe this question hasn't been closed. It's far too general for this Q&A site. A question here should not just be fishing for general "tips". Anyway...)
Emacs Wiki is your friend.
Start with the links under Learning Emacs on the first page.
The best link there is Emacs Newbie.
The next-best link there is the page that deals with Emacs Help.
That will get you started, and more. Come back to Learning Emacs for more.
Emacs Wiki will point you to Emacs's own information about learning Emacs, in particular how to "ask Emacs" itself - the Emacs help system and manuals. And how to learn Emacs Lisp.
-
1I can't believe you're answering this question, which is approving the bad behavior of asking such question. I can't believe I'm writing such a non-constructive comment, which also adds something to this question/post... Oct 13, 2020 at 4:21
-
@PanJunjie潘俊杰: If the question is not to be closed then it deserves answers, and this is my answer. In my opinion the question should be closed, but mine is only one opinion.– DrewOct 13, 2020 at 17:40
Don't get discouraged, it has a very steep learning curve. If you stick with it, it pays very high dividends.
Start with the manual: https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html
once you get a bit comfortable (you don't have to get all the way through in one go) you should consider learning how to customize it: https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html
It is built around lisp, which is well known in academic computer science circles, but, looks a little odd to programmers who only know javascript. Try to keep an open mind (meta-programming macros will blow your mind). A great intro to lisp (really scheme, but, they are all related) is: https://mitpress.mit.edu/books/little-schemer-fourth-edition
The greatest thing about emacs is that you can edit the editor while you are editing (without restarting!).
If you are a new user and still have to learn all the key-bindings you should consider doom emacs or the already mentioned spacemacs. Doom emacs and Spacemacs allow you to use vim-keybindings (using evil-mode) instead of emacs keybindings. You can setup everything yourself but I think it is still worth checking out the distros first. To be clear, I use standard emacs keybindings but I tend to believe that vim keybindings are the better choice. The problem is, if you are already used to the keybindings it can be bothersome to learn new ones. Especially if your muscle memory is well trained. Imho the keybinding question is an important one and should be asked in the very beginning (event though you might not find an answer to it).
Emacs keybindings:
In emacs, keybindings are mostly like in many other programs (just a lot more of them). You have the two modifier keys ctrl
and alt
(meta-key) and you have to use them a lot. For example: C-x C-s
to save the buffer, C-x C-f
to open a file, C-f
move pointer forward, C-b
to move pointer backward, C-p
to move pointer to previous line and C-n
to move the next line. You get the idea. With the constant use of ctrl
and also shift
there will be a lot of strain on your pinky, which can lead to the infamous emacs-pinky. If you still want to choose classic emacs keybindings consider remapping the ctrl
to the capslock
button. Also Xah Lee has some additional tips.
If you have already played around with Vim, you'll know it uses the concept of modal editing where you switch between command mode and insert mode. I am not experienced with vim but I do consider switching to evil mode because of the following reasons:
- Less strain the fingers. No emacs pinky.
- I do not have any prove for this, but from my general understand after reading up on it, is that vim keybinding are more efficient.
- vi is installed on every linux machine, so you will always feel at home.
Why then use emacs and not vim? Well, I bet Vim is great but I cannot tell you how great it is because I never really used it. But I can tell how great emacs is. You can configure emacs to be everything you want. You can use it as an IDE for almost every programming language, you can use it as a Latex-Editor, you have org-mode (which you should definitely check out!), you can use it for reading and writing emails and so on and so on. For me, configuring emacs is kinda a hobby of mine and I think one should see it as that. It is for people who like to play around.
Read phils's advice: through a simple example (disable the beep) he explains essential concepts.