GNU Emacs is primarily designed for use with the keyboard. While it is possible to use the mouse to issue editing commands through the menu bar and tool bar, that is not as efficient as using the keyboard. Therefore, this manual mainly documents how to edit with the keyboard.
Keyboard input into Emacs is based on a heavily-extended version of ASCII. The simplest characters that you can input into Emacs correspond to graphic symbols such as ‘a’, ‘B’, ‘3’, ‘=’, the space character (conventionally denoted as <SPC>), and so on. Entering these using the keyboard is straightforward. Certain characters found on non-English keyboards also fall into this category (see International).
In addition to these simple characters, Emacs recognizes control characters such as <RET>, <TAB>, <DEL>, <ESC>, <F1>, <Home>, <left>, etc. Most keyboards have special keys for entering these.
Emacs also recognizes control characters that are entered using modifier keys. Two commonly-used modifier keys are <Control> (which is usually labelled as <Ctrl>), and <Meta> (which is usually labeled as <Alt>)1. For example, Control-a is entered by holding down the <Ctrl> key while pressing a; we will refer to this as C-a for short. Similarly Meta-a, or M-a for short, is entered by holding down the <Alt> key and pressing a.
You can also type Meta characters using two-character sequences starting with <ESC>. Thus, you can enter M-a by typing <ESC> a. You can enter C-M-a by typing <ESC> C-a. Unlike <Meta>, <ESC> is entered as a separate character. You don't hold down <ESC> while typing the next character; instead, press <ESC> and release it, then enter the next character. This feature is useful on certain text-only terminals where the <Meta> key does not function reliably.
Modifier keys can apply not only to alphanumerical characters, but also to special input characters, such as the arrow keys and mouse buttons.
See Input Events, for the full Lisp-level details about keyboard and mouse input, which are collectively referred to as input events. If you are not doing Lisp programming, but simply want to redefine the meaning of some characters or non-character events, see Customization.
On graphical displays, the window manager is likely to block the character M-<TAB> before Emacs can see it. It may also block M-<SPC>, C-M-d and C-M-l. If you have these problems, we recommend that you customize your window manager to turn off those commands, or put them on key combinations that Emacs does not use.
 We refer to <Alt> as <Meta> for historical reasons.