Nivedita Chopra
About Projects Activities Classes Resume Contact 15-122 Miscellaneous

Emacs : The Basics

This tutorial was written as reference for a session on emacs that I conducted as part of my duties as Teaching Assistant for 15-122.
Here, I intend to highlight the basic commands for various essential tasks. I'll also mention some commands that I have found extremely useful.
In these commands, 'C' refers to the Ctrl key and 'M' refers to the Alt or Esc key, depending on your computer. The command 'C-x' means first press the Ctrl key and then press 'x', while keeping the Ctrl key pressed.
Let's dive right in!

Opening and Closing Files

To open a file foo.c0 in emacs, simply type emacs foo.c0 in the shell.
To close a file in emacs, use the command C-x C-c. If you have made any changes to the file, you will be prompted to choose one of many options. The only ones that usually concern you, will be 'y' for yes (to save your changes) and 'n' for no (to discard your changes).

Saving Files

To save the file, use C-x C-s.

Navigating

By Word
Forward — M-f
Backward — M-b
By Line
Next Line — C-n
Previous Line — C-p
Go to beginning — C-a
Go to end — C-e
Go to line num — M-g g num
By Screen
Next Screen — C-v
Previous Screen — M-v

Find and Replace

To find text, use C-s and type in the string you want to search for. This highlights all the occurences of the string in the document. To move forwards through the matches, use C-s and to move backwards, use C-r.
To replace one string with another, use M-%. When prompted, type the string to replace and hit enter. Then type the string that replaces it and hit enter. Then press space to replace a match and the delete key to ignore it.

Cut, Copy & Paste

First, to select the text, for cut or copy, move the cursor to the beginning of the text you want to select. Press C-space and move your cursor to the end of the text. Then use the appropriate command below.
Cut — C-w
Copy — M-w
To paste text that has been cut or copied, move your cursor to the spot where you want to insert the text and then use C-y to paste.

Undo

To undo the previous action, use C-_

Cancelling a Command

Many times, you may accidentally enter in part of a command and then realize that you didn't actually want to do that. To cancel or 'quit' the command, type C-g

Getting the Length of a Line

To get the number of characters in some text, select the text (as shown in the Cut, Copy and Paste section), and then use the command M-= to count the lines and characters in the region.
I find this particularly useful in getting the length of a line. To do this, from anywhere in the line type C-a C-space C-e M-= to get the number of characters in the line. This works by going to the beginning of the line, selecting the region till the end of the line and then running the command to count the number of characters in that line. I do this when I feel a line is growing too long, as it is good style to keep the line length limited to 80 characters.
Hopefully, you were able to follow this and are feeling a bit more confident about emacs commands. Please feel free to email me if you have any comments or questions about what I have written here. I plan to expand on some of the more complicated commands in emacs sometime soon.