Skip to content

Instantly share code, notes, and snippets.

@sachac
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sachac/de7e977140e8dc5b00f2 to your computer and use it in GitHub Desktop.
Save sachac/de7e977140e8dc5b00f2 to your computer and use it in GitHub Desktop.
**Getting started with Emacs? Empty your cup.**
Struggling with learning Emacs because you're just not as productive as you are with your old editor? Copying configuration snippets from the Web in order to force it to work like what you're used to, but running into problems with conflicting code or obscure error messages?
Here's something I've realized. To learn Emacs well, you need to empty your cup. This is the story as told on the [C2 wiki](http://c2.com/cgi/wiki?EmptyYourCup):
<blockquote>A master was trying to explain something to a student. Now this student was not a brand new student, but a senior student who had learned many things. He had knowledge and experience aplenty to draw upon. But each time the master tried to explain something new to the student, the student kept trying to hold it up against his own notions of the way the world is and how it ought be, and he was unable to see the lessons in what the master was trying to teach him.
Finally, the master poured a full serving of tea into his own cup, and into the cup of the student. Then he told the student he wanted to give to him some of the tea from his own cup. He began pouring tea from his cup into the student's cup, but the student's cup was already full, and all the tea from the master's cup spilled out over the cup onto the surface below.
The student said, "Master, you can't pour anything into my cup until I empty it to make room for what you are trying to give me.", and the master replied "Yes I know." "And I can't give you any new thoughts or ideas or perspectives on life's lessons until you clear out some thoughts that are already teeming in your mind to make room for what I have to teach you." Then the master paused for a brief moment, meeting the student's eyes with his own knowing look and calmly but sternly said: " If you truly seek understanding, then first, empty your cup!"
The student pondered for a moment with a look of absolute bewilderment. Then a look of enlightenment came over him, followed by a smile, and a look of receptiveness. The master started to explain again, and this time the student saw what the master was trying to say.</blockquote>
<img class="alignnone size-medium wp-image-27827" src="http://sachachua.com/blog/wp-content/uploads/2015/02/2015-01-13-Emacs-and-the-beginners-mind-index-card-emacs-beginner-640x381.png" alt="2015-01-13 Emacs and the beginner's mind -- index card #emacs #beginner" width="640" height="381" />
<a href="https://www.flickr.com.ph/photos/65214961@N00/16087275640">2015-01-13 Emacs and the beginner's mind – index card #emacs #beginner</a>
Emacs beginners often grumble about the strange keyboard shortcuts and terminology. "Why can't I use Ctrl-X to cut? Why is it called 'killing text'? What's all this about buffers?"
Some of those differences seem easy to fix with code you can get on the Net. For example, many newbies turn to Cua-mode or Evil-mode to provide them with familiar shortcuts.
But if you do that – if you give in to your initial discomfort – you may find yourself fighting more and more of Emacs as you go along, without the skills to properly integrate your changes.
It's better, I think, to approach Emacs as a beginner. Pretend this is your first editor. Go through the tutorial. Start with the basics. Try doing things the Emacs way.
In the beginning, you might feel agonizingly slow. So you may need to do this in your discretionary time instead of when everyone is counting on you to deliver a time-sensitive project. It's okay to open up Vim so that you can get something done, while you keep learning Emacs in the background.
As you become familiar with the system, you learn how to work within it. Eventually, you'll understand the configuration snippets that other people post. <a href="http://emacslife.com/how-to-read-emacs-lisp.html">Reading Emacs Lisp</a> is the first step to being able to <b>modify</b> Emacs Lisp, and from there you can learn how to <b>write</b> Emacs Lisp. But you don't have to start knowing that right away. Many people use Emacs for years before moving to that point, and many people use it without customizing it.
But if you start learning Emacs by getting frustrated with it and trying to force it to be what you want, you might never get to the point where you can enjoy it and work with it. Be a beginner. Give yourself time and space to learn, even if you feel you're learning slowly. Then, as you improve your understanding and skills, you'll learn how to coax Emacs to fit you even better.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment