diff options
| author | Chong Yidong | 2008-07-15 14:12:18 +0000 |
|---|---|---|
| committer | Chong Yidong | 2008-07-15 14:12:18 +0000 |
| commit | 9bb75d26827d70107f5a820bf887bcec9a90acfd (patch) | |
| tree | ee7bdcadfb95bedae55a44e0ef431f6d3d8ae043 | |
| parent | 9f30aa7371d6020eefa1d3997c43c4f844d3d0fe (diff) | |
| download | emacs-9bb75d26827d70107f5a820bf887bcec9a90acfd.tar.gz emacs-9bb75d26827d70107f5a820bf887bcec9a90acfd.zip | |
(User Input): Rewrite. Describe Emacs' behavior
directly, rather than in the context of ASCII. Move description of
special properties of modifier key to new Modifier Keys node.
(Keys): Copyedit.
(Text Characters): Delete node. Multibyte is the default nowadays, and
the node contents are obsolete.
| -rw-r--r-- | doc/emacs/commands.texi | 291 |
1 files changed, 99 insertions, 192 deletions
diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi index 717a87b419b..249be21923b 100644 --- a/doc/emacs/commands.texi +++ b/doc/emacs/commands.texi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | @chapter Characters, Keys and Commands | 6 | @chapter Characters, Keys and Commands |
| 7 | 7 | ||
| 8 | This chapter explains the character sets used by Emacs for input | 8 | This chapter explains the character sets used by Emacs for input |
| 9 | commands and for the contents of files, and the fundamental concepts of | 9 | commands, and the fundamental concepts of @dfn{keys} and |
| 10 | @dfn{keys} and @dfn{commands}, whereby Emacs interprets your keyboard | 10 | @dfn{commands}, whereby Emacs interprets your keyboard and mouse |
| 11 | and mouse input. | 11 | input. |
| 12 | @end iftex | 12 | @end iftex |
| 13 | 13 | ||
| 14 | @ifnottex | 14 | @ifnottex |
| @@ -25,120 +25,65 @@ and mouse input. | |||
| 25 | @cindex Control | 25 | @cindex Control |
| 26 | @cindex control characters | 26 | @cindex control characters |
| 27 | 27 | ||
| 28 | GNU Emacs is designed for use with keyboard commands because that is | 28 | GNU Emacs is primarily designed for use with the keyboard. While it |
| 29 | the most efficient way to edit. You can do editing with the mouse, as | 29 | is possible to use the mouse to issue editing commands through the |
| 30 | in other editors, and you can give commands with the menu bar and tool | 30 | menu bar and tool bar, that is not as efficient as using the keyboard. |
| 31 | bar, and scroll with the scroll bar. But if you keep on editing that | 31 | Therefore, this manual mainly documents how to edit with the keyboard. |
| 32 | way, you won't get the benefits of Emacs. Therefore, this manual | 32 | |
| 33 | documents primarily how to edit with the keyboard. You can force | 33 | Keyboard input into Emacs is based on a heavily-extended version of |
| 34 | yourself to practice using the keyboard by using the shell command | 34 | @acronym{ASCII}. The simplest characters that you can input into |
| 35 | @samp{emacs -nw} to start Emacs, so that the mouse won't work. | 35 | Emacs correspond to graphic symbols such as @samp{a}, @samp{B}, |
| 36 | 36 | @samp{3}, @samp{=}, the space character (conventionally denoted as | |
| 37 | Emacs uses an extension of the @acronym{ASCII} character set for | 37 | @key{SPC}), and so on. Entering these using the keyboard is |
| 38 | keyboard input; it also accepts non-character input events including | 38 | straightforward. Certain characters found on non-English keyboards |
| 39 | function keys and mouse button actions. | 39 | also fall into this category (@pxref{International}). |
| 40 | 40 | ||
| 41 | @acronym{ASCII} consists of 128 character codes. Some of these codes are | 41 | In addition to these simple characters, Emacs recognizes |
| 42 | assigned graphic symbols such as @samp{a} and @samp{=}; the rest are | 42 | @dfn{control characters} such as @key{RET}, @key{TAB}, @key{DEL}, |
| 43 | control characters, such as @kbd{Control-a} (usually written @kbd{C-a} | 43 | @key{ESC}, @key{F1}, @key{Home}, @key{left}, etc. Most keyboards have |
| 44 | for short). @kbd{C-a} gets its name from the fact that you type it by | 44 | special keys for entering these. |
| 45 | holding down the @key{CTRL} key while pressing @kbd{a}. | 45 | |
| 46 | 46 | @cindex modifier keys | |
| 47 | Some @acronym{ASCII} control characters have special names, and most | 47 | @cindex Control |
| 48 | terminals have special keys you can type them with: for example, | 48 | @cindex C- |
| 49 | @key{RET}, @key{TAB}, @key{DEL} and @key{ESC}. The space character is | ||
| 50 | usually known as @key{SPC}, even though strictly speaking it is a | ||
| 51 | graphic character that is blank. | ||
| 52 | |||
| 53 | Emacs extends the @acronym{ASCII} character set with thousands more printing | ||
| 54 | characters (@pxref{International}), additional control characters, and a | ||
| 55 | few more modifiers that can be combined with any character. | ||
| 56 | |||
| 57 | On @acronym{ASCII} terminals, there are only 32 possible control characters. | ||
| 58 | These are the control variants of letters and @samp{@@[]\^_}. In | ||
| 59 | addition, the shift key is meaningless with control characters: | ||
| 60 | @kbd{C-a} and @kbd{C-A} are the same character, and Emacs cannot | ||
| 61 | distinguish them. | ||
| 62 | |||
| 63 | The Emacs character set has room for control variants of all | ||
| 64 | printing characters, and distinguishes @kbd{C-A} from @kbd{C-a}. | ||
| 65 | Graphical terminals make it possible to enter all these characters. | ||
| 66 | For example, @kbd{C--} (that's Control-Minus) and @kbd{C-5} are | ||
| 67 | meaningful Emacs commands on a graphical terminal. | ||
| 68 | |||
| 69 | Another Emacs character-set extension is additional modifier bits. | ||
| 70 | Only one modifier bit is commonly used; it is called Meta. Every | ||
| 71 | character has a Meta variant; examples include @kbd{Meta-a} (normally | ||
| 72 | written @kbd{M-a}, for short), @kbd{M-A} (different from @kbd{M-a}, | ||
| 73 | but they are normally equivalent in Emacs), @kbd{M-@key{RET}}, and | ||
| 74 | @kbd{M-C-a}. That last means @kbd{a} with both the @key{CTRL} and | ||
| 75 | @key{META} modifiers. We usually write it as @kbd{C-M-a} rather than | ||
| 76 | @kbd{M-C-a}, for reasons of tradition. | ||
| 77 | |||
| 78 | @cindex Meta | 49 | @cindex Meta |
| 79 | @cindex M- | 50 | @cindex M- |
| 80 | @cindex @key{ESC} replacing @key{META} key | 51 | Emacs also recognizes control characters that are entered using |
| 81 | Some terminals have a @key{META} key, and allow you to type Meta | 52 | @dfn{modifier keys}. Two commonly-used modifier keys are |
| 82 | characters by holding this key down. Thus, you can type @kbd{Meta-a} | 53 | @key{Control} (which is usually labelled as @key{Ctrl}), and |
| 83 | by holding down @key{META} and pressing @kbd{a}. The @key{META} key | 54 | @key{Meta} (which is usually labeled as @key{Alt})@footnote{We refer |
| 84 | works much like the @key{SHIFT} key. In fact, this key is more often | 55 | to @key{Alt} as @key{Meta} for historical reasons.}. For example, |
| 85 | labeled @key{ALT} or @key{EDIT}, instead of @key{META}; on a Sun | 56 | @kbd{Control-a} is entered by holding down the @key{Ctrl} key while |
| 86 | keyboard, it may have a diamond on it. | 57 | pressing @kbd{a}; we will refer to this as @kbd{C-a} for short. |
| 87 | 58 | Similarly @kbd{Meta-a}, or @kbd{M-a} for short, is entered by holding | |
| 88 | If there is no @key{META} key, you can still type Meta characters | 59 | down the @key{Alt} key and pressing @kbd{a}. |
| 89 | using two-character sequences starting with @key{ESC}. Thus, you can | 60 | |
| 90 | enter @kbd{M-a} by typing @kbd{@key{ESC} a}. You can enter | 61 | @cindex @key{ESC} replacing @key{Meta} key |
| 91 | @kbd{C-M-a} by typing @kbd{@key{ESC} C-a}. Unlike @key{META}, which | 62 | You can also type Meta characters using two-character sequences |
| 92 | modifies other characters, @key{ESC} is a separate character. You | 63 | starting with @key{ESC}. Thus, you can enter @kbd{M-a} by typing |
| 93 | don't hold down @key{ESC} while typing the next character; instead, | 64 | @kbd{@key{ESC} a}. You can enter @kbd{C-M-a} by typing @kbd{@key{ESC} |
| 94 | you press it and release it, then you enter the next character. | 65 | C-a}. Unlike @key{Meta}, @key{ESC} is entered as a separate |
| 95 | @key{ESC} is allowed on terminals with @key{META} keys, too, in case | 66 | character. You don't hold down @key{ESC} while typing the next |
| 96 | you have formed a habit of using it. | 67 | character; instead, press @key{ESC} and release it, then enter the |
| 97 | 68 | next character. This feature is useful on certain text-only terminals | |
| 98 | Emacs defines several other modifier keys that can be applied to any | 69 | where the @key{Meta} key does not function reliably. |
| 99 | input character. These are called @key{SUPER}, @key{HYPER} and | 70 | |
| 100 | @key{ALT}. We write @samp{s-}, @samp{H-} and @samp{A-} to say that a | 71 | Modifier keys can apply not only to alphanumerical characters, but |
| 101 | character uses these modifiers. Thus, @kbd{s-H-C-x} is short for | 72 | also to special input characters, such as the arrow keys and mouse |
| 102 | @kbd{Super-Hyper-Control-x}. Not all graphical terminals actually | 73 | buttons. |
| 103 | provide keys for these modifier flags---in fact, many terminals have a | ||
| 104 | key labeled @key{ALT} which is really a @key{META} key. The standard | ||
| 105 | key bindings of Emacs do not include any characters with these | ||
| 106 | modifiers. But you can assign them meanings of your own by | ||
| 107 | customizing Emacs. | ||
| 108 | |||
| 109 | If your keyboard lacks one of these modifier keys, you can enter it | ||
| 110 | using @kbd{C-x @@}: @kbd{C-x @@ h} adds the ``hyper'' flag to the next | ||
| 111 | character, @kbd{C-x @@ s} adds the ``super'' flag, and @kbd{C-x @@ a} | ||
| 112 | adds the ``alt'' flag. For instance, @kbd{C-x @@ h C-a} is a way to | ||
| 113 | enter @kbd{Hyper-Control-a}. (Unfortunately there is no way to add | ||
| 114 | two modifiers by using @kbd{C-x @@} twice for the same character, | ||
| 115 | because the first one goes to work on the @kbd{C-x}.) | ||
| 116 | |||
| 117 | Keyboard input includes keyboard keys that are not characters at | ||
| 118 | all, such as function keys and arrow keys. Mouse buttons are also not | ||
| 119 | characters. However, you can modify these events with the modifier | ||
| 120 | keys @key{CTRL}, @key{META}, @key{SUPER}, @key{HYPER} and @key{ALT}, | ||
| 121 | just like keyboard characters. | ||
| 122 | 74 | ||
| 123 | @cindex input event | 75 | @cindex input event |
| 124 | Input characters and non-character inputs are collectively called | 76 | @xref{Input Events,,, elisp, The Emacs Lisp Reference Manual}, for |
| 125 | @dfn{input events}. @xref{Input Events,,, elisp, The Emacs Lisp | 77 | the full Lisp-level details about keyboard and mouse input, which are |
| 126 | Reference Manual}, for the full Lisp-level details. If you are not | 78 | collectively referred to as @dfn{input events}. If you are not doing |
| 127 | doing Lisp programming, but simply want to redefine the meaning of | 79 | Lisp programming, but simply want to redefine the meaning of some |
| 128 | some characters or non-character events, see @ref{Customization}. | 80 | characters or non-character events, see @ref{Customization}. |
| 129 | |||
| 130 | @acronym{ASCII} terminals cannot really send anything to the computer except | ||
| 131 | @acronym{ASCII} characters. These terminals use a sequence of characters to | ||
| 132 | represent each function key. But that is invisible to the Emacs user, | ||
| 133 | because the keyboard input routines catch these special sequences | ||
| 134 | and convert them to function key events before any other part of Emacs | ||
| 135 | gets to see them. | ||
| 136 | 81 | ||
| 137 | @cindex keys stolen by window manager | 82 | @cindex keys stolen by window manager |
| 138 | @cindex window manager, keys stolen by | 83 | @cindex window manager, keys stolen by |
| 139 | On graphical displays, the window manager is likely to block the | 84 | On graphical displays, the window manager is likely to block the |
| 140 | character @kbd{Meta-@key{TAB}} before Emacs can see it. It may also | 85 | character @kbd{M-@key{TAB}} before Emacs can see it. It may also |
| 141 | block @kbd{Meta-@key{SPC}}, @kbd{C-M-d} and @kbd{C-M-l}. If you have | 86 | block @kbd{M-@key{SPC}}, @kbd{C-M-d} and @kbd{C-M-l}. If you have |
| 142 | these problems, we recommend that you customize your window manager to | 87 | these problems, we recommend that you customize your window manager to |
| 143 | turn off those commands, or put them on key combinations that Emacs | 88 | turn off those commands, or put them on key combinations that Emacs |
| 144 | does not use. | 89 | does not use. |
| @@ -146,65 +91,58 @@ does not use. | |||
| 146 | @node Keys, Commands, User Input, Top | 91 | @node Keys, Commands, User Input, Top |
| 147 | @section Keys | 92 | @section Keys |
| 148 | 93 | ||
| 149 | @cindex key sequence | 94 | Some Emacs commands are invoked by just one input event; for |
| 150 | @cindex key | 95 | example, @kbd{C-f} moves forward one character in the buffer. But |
| 151 | A @dfn{key sequence} (@dfn{key}, for short) is a sequence of input | 96 | Emacs also has commands that take two or more input events to invoke, |
| 152 | events that is meaningful as a unit---a ``single command.'' Some | 97 | such as @kbd{C-x C-f} and @kbd{C-x 4 C-f}. |
| 153 | Emacs command sequences are invoked by just one character or one | ||
| 154 | event; for example, just @kbd{C-f} moves forward one character in the | ||
| 155 | buffer. But Emacs also has commands that take two or more events to | ||
| 156 | invoke. | ||
| 157 | 98 | ||
| 99 | @cindex key | ||
| 100 | @cindex key sequence | ||
| 158 | @cindex complete key | 101 | @cindex complete key |
| 159 | @cindex prefix key | 102 | @cindex prefix key |
| 160 | If a sequence of events is enough to invoke a command, it is a | 103 | A @dfn{key sequence}, or @dfn{key} for short, is a sequence of one |
| 161 | @dfn{complete key}. Examples of complete keys include @kbd{C-a}, | 104 | or more input events that is meaningful as a unit. If a key sequence |
| 162 | @kbd{X}, @key{RET}, @key{NEXT} (a function key), @key{DOWN} (an arrow | 105 | invokes a command, we call it a @dfn{complete key}; for example, |
| 163 | key), @kbd{C-x C-f}, and @kbd{C-x 4 C-f}. If it isn't long enough to be | 106 | @kbd{C-f}, @kbd{C-x C-f} and @kbd{C-x 4 C-f} are all complete keys. |
| 164 | complete, we call it a @dfn{prefix key}. The above examples show that | 107 | If a key sequence isn't long enough to invoke a command, we call it a |
| 165 | @kbd{C-x} and @kbd{C-x 4} are prefix keys. Every key sequence is either | 108 | @dfn{prefix key}; from the preceding example, we see that @kbd{C-x} |
| 166 | a complete key or a prefix key. | 109 | and @kbd{C-x 4} are prefix keys. Every key is either a complete key |
| 167 | 110 | or a prefix key. | |
| 168 | Most single characters constitute complete keys in the standard Emacs | 111 | |
| 169 | command bindings. A few of them are prefix keys. A prefix key combines | 112 | A prefix key combines with the following input event to make a |
| 170 | with the following input event to make a longer key sequence, which may | 113 | longer key sequence, which may itself be complete or a prefix. For |
| 171 | itself be complete or a prefix. For example, @kbd{C-x} is a prefix key, | 114 | example, @kbd{C-x} is a prefix key, so @kbd{C-x} and the next input |
| 172 | so @kbd{C-x} and the next input event combine to make a two-event | 115 | event combine to make a two-event key sequence. This two-event key |
| 173 | key sequence. Most of these key sequences are complete keys, including | 116 | sequence could itself be a prefix key (such as @kbd{C-x 4}), or a |
| 174 | @kbd{C-x C-f} and @kbd{C-x b}. A few, such as @kbd{C-x 4} and @kbd{C-x | 117 | complete key (such as @kbd{C-x C-f}). There is no limit to the length |
| 175 | r}, are themselves prefix keys that lead to three-event key | 118 | of a key sequence, but in practice people rarely use sequences longer |
| 176 | sequences. There's no limit to the length of a key sequence, but in | 119 | than three or four input events. |
| 177 | practice people rarely use sequences longer than four events. | ||
| 178 | 120 | ||
| 179 | You can't add input events onto a complete key. For example, the | 121 | You can't add input events onto a complete key. For example, the |
| 180 | two-event sequence @kbd{C-f C-k} is not a key, because the @kbd{C-f} | 122 | two-event sequence @kbd{C-f C-k} is not a key, because the @kbd{C-f} |
| 181 | is a complete key in itself. It's impossible to give @kbd{C-f C-k} an | 123 | is a complete key in itself, so @kbd{C-f C-k} cannot have an |
| 182 | independent meaning as a command. @kbd{C-f C-k} is two key sequences, | 124 | independent meaning as a command. @kbd{C-f C-k} is two key sequences, |
| 183 | not one.@refill | 125 | not one.@refill |
| 184 | 126 | ||
| 185 | All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, | 127 | By default, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, |
| 186 | @kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x | 128 | @kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x |
| 187 | n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x | 129 | n}, @kbd{C-x r}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6}, |
| 188 | 6}, @key{ESC}, @kbd{M-g}, and @kbd{M-o}. (@key{F1} and @key{F2} are | 130 | @key{ESC}, @kbd{M-g}, and @kbd{M-o}. (@key{F1} and @key{F2} are |
| 189 | aliases for @kbd{C-h} and @kbd{C-x 6}.) This list is not cast in stone; | 131 | aliases for @kbd{C-h} and @kbd{C-x 6}.) This list is not cast in |
| 190 | it describes the standard key bindings. If you customize Emacs, you can make | 132 | stone; if you customize Emacs, you can make new prefix keys. You |
| 191 | new prefix keys, or eliminate some of the standard ones (not | 133 | could even eliminate some of the standard ones, though this is not |
| 192 | recommended for most users). @xref{Key Bindings}. | 134 | recommended for most users; for example, if you remove the prefix |
| 193 | 135 | definition of @kbd{C-x 4}, then @kbd{C-x 4 @var{anything}} would | |
| 194 | If you make or eliminate prefix keys, that changes the set of | 136 | become an invalid key sequence. @xref{Key Bindings}. |
| 195 | possible key sequences. For example, if you redefine @kbd{C-f} as a | ||
| 196 | prefix, @kbd{C-f C-k} automatically becomes a key (complete, unless | ||
| 197 | you define that too as a prefix). Conversely, if you remove the | ||
| 198 | prefix definition of @kbd{C-x 4}, then @kbd{C-x 4 f} and @kbd{C-x 4 | ||
| 199 | @var{anything}} are no longer keys. | ||
| 200 | 137 | ||
| 201 | Typing the help character (@kbd{C-h} or @key{F1}) after a prefix key | 138 | Typing the help character (@kbd{C-h} or @key{F1}) after a prefix key |
| 202 | displays a list of the commands starting with that prefix. There are | 139 | displays a list of the commands starting with that prefix. The sole |
| 203 | a few prefix keys after which @kbd{C-h} does not work---for historical | 140 | exception to this rule is @key{ESC}: @kbd{@key{ESC}C-h} is equivalent |
| 204 | reasons, they define other meanings for @kbd{C-h} which are painful to | 141 | to @kbd{C-M-h}, which does something else entirely. You can, however, |
| 205 | change. @key{F1} works after all prefix keys. | 142 | use @key{F1} to displays a list of the commands starting with |
| 143 | @key{ESC}. | ||
| 206 | 144 | ||
| 207 | @node Commands, Text Characters, Keys, Top | 145 | @node Commands, Entering Emacs, Keys, Top |
| 208 | @section Keys and Commands | 146 | @section Keys and Commands |
| 209 | 147 | ||
| 210 | @cindex binding | 148 | @cindex binding |
| @@ -219,11 +157,11 @@ their meanings by @dfn{binding} them to commands. | |||
| 219 | usually made of a few English words separated by dashes; for example, | 157 | usually made of a few English words separated by dashes; for example, |
| 220 | @code{next-line} or @code{forward-word}. A command also has a | 158 | @code{next-line} or @code{forward-word}. A command also has a |
| 221 | @dfn{function definition} which is a Lisp program; this is how the | 159 | @dfn{function definition} which is a Lisp program; this is how the |
| 222 | command does its work. In Emacs Lisp, a command is a Lisp function with | 160 | command does its work. In Emacs Lisp, a command is a Lisp function |
| 223 | special options to read arguments and for interactive use. For more | 161 | with special properties that make it suitable for interactive use. |
| 224 | information on commands and functions, see @ref{What Is a Function,, | 162 | For more information on commands and functions, see @ref{What Is a |
| 225 | What Is a Function, elisp, The Emacs Lisp Reference Manual}. (The | 163 | Function,, What Is a Function, elisp, The Emacs Lisp Reference |
| 226 | definition here is simplified slightly.) | 164 | Manual}. |
| 227 | 165 | ||
| 228 | The bindings between keys and commands are recorded in tables called | 166 | The bindings between keys and commands are recorded in tables called |
| 229 | @dfn{keymaps}. @xref{Keymaps}. | 167 | @dfn{keymaps}. @xref{Keymaps}. |
| @@ -234,10 +172,8 @@ but vital for Emacs customization. The command @code{next-line} does | |||
| 234 | a vertical move downward. @kbd{C-n} has this effect @emph{because} it | 172 | a vertical move downward. @kbd{C-n} has this effect @emph{because} it |
| 235 | is bound to @code{next-line}. If you rebind @kbd{C-n} to the command | 173 | is bound to @code{next-line}. If you rebind @kbd{C-n} to the command |
| 236 | @code{forward-word}, @kbd{C-n} will move forward one word instead. | 174 | @code{forward-word}, @kbd{C-n} will move forward one word instead. |
| 237 | Rebinding keys is an important method of customization. | ||
| 238 | 175 | ||
| 239 | In the rest of this manual, we usually ignore this distinction to | 176 | In this manual, we will often speak of keys like @kbd{C-n} as |
| 240 | keep things simple. We will often speak of keys like @kbd{C-n} as | ||
| 241 | commands, even though strictly speaking the key is bound to a command. | 177 | commands, even though strictly speaking the key is bound to a command. |
| 242 | Usually we state the name of the command which really does the work in | 178 | Usually we state the name of the command which really does the work in |
| 243 | parentheses after mentioning the key that runs it. For example, we | 179 | parentheses after mentioning the key that runs it. For example, we |
| @@ -256,35 +192,6 @@ until you are interested in customizing them. Then read the basic | |||
| 256 | information on variables (@pxref{Variables}) and the information about | 192 | information on variables (@pxref{Variables}) and the information about |
| 257 | specific variables will make sense. | 193 | specific variables will make sense. |
| 258 | 194 | ||
| 259 | @node Text Characters, Entering Emacs, Commands, Top | ||
| 260 | @section Character Set for Text | ||
| 261 | @cindex characters (in text) | ||
| 262 | |||
| 263 | Text in Emacs buffers is a sequence of characters. In the simplest | ||
| 264 | case, these are @acronym{ASCII} characters, each stored in one 8-bit | ||
| 265 | byte. Both @acronym{ASCII} control characters (octal codes 000 | ||
| 266 | through 037, and 0177) and @acronym{ASCII} printing characters (codes | ||
| 267 | 040 through 0176) are allowed. The other modifier flags used in | ||
| 268 | keyboard input, such as Meta, are not allowed in buffers. | ||
| 269 | |||
| 270 | Non-@acronym{ASCII} printing characters can also appear in buffers, | ||
| 271 | when multibyte characters are enabled. They have character codes | ||
| 272 | starting at 256, octal 0400, and each one is represented as a sequence | ||
| 273 | of two or more bytes. @xref{International}. Single-byte characters | ||
| 274 | with codes 128 through 255 can also appear in multibyte buffers. | ||
| 275 | However, non-@acronym{ASCII} control characters cannot appear in a | ||
| 276 | buffer. | ||
| 277 | |||
| 278 | Some @acronym{ASCII} control characters serve special purposes in text, and have | ||
| 279 | special names. For example, the newline character (octal code 012) is | ||
| 280 | used in the buffer to end a line, and the tab character (octal code 011) | ||
| 281 | is used for indenting to the next tab stop column (normally every 8 | ||
| 282 | columns). @xref{Text Display}. | ||
| 283 | |||
| 284 | If you disable multibyte characters, then you can use only one | ||
| 285 | alphabet of non-@acronym{ASCII} characters, which all fit in one byte. | ||
| 286 | They use octal codes 0200 through 0377. @xref{Unibyte Mode}. | ||
| 287 | |||
| 288 | @ifnottex | 195 | @ifnottex |
| 289 | @lowersections | 196 | @lowersections |
| 290 | @end ifnottex | 197 | @end ifnottex |