update.
[chise/xemacs-chise.git.1] / man / xemacs / text.texi
1
2 @node Text, Programs, Indentation, Top
3 @chapter Commands for Human Languages
4 @cindex text
5
6   The term @dfn{text} has two widespread meanings in our area of the
7 computer field.  One is data that is a sequence of characters.  In this
8 sense of the word any file that you edit with Emacs is text.  The other
9 meaning is more restrictive: a sequence of characters in a human
10 language for humans to read (possibly after processing by a text
11 formatter), as opposed to a program or commands for a program.
12
13   Human languages have syntactic and stylistic conventions that editor
14 commands should support or use to advantage: conventions involving
15 words, sentences, paragraphs, and capital letters.  This chapter describes
16 Emacs commands for all these things.  There are also commands for
17 @dfn{filling}, or rearranging paragraphs into lines of approximately equal
18 length.  The commands for moving over and killing words, sentences,
19 and paragraphs, while intended primarily for editing text, are also often
20 useful for editing programs.
21
22   Emacs has several major modes for editing human language text.
23 If a file contains plain text, use Text mode, which customizes
24 Emacs in small ways for the syntactic conventions of text.  For text which
25 contains embedded commands for text formatters, Emacs has other major modes,
26 each for a particular text formatter.  Thus, for input to @TeX{}, you can
27 use @TeX{} mode; for input to nroff, Nroff mode.
28
29 @menu
30 * Text Mode::   The major modes for editing text files.
31 * Nroff Mode::  The major mode for editing input to the formatter nroff.
32 * TeX Mode::    The major modes for editing input to the formatter TeX.
33 * Outline Mode:: The major mode for editing outlines.
34 * Words::       Moving over and killing words.
35 * Sentences::   Moving over and killing sentences.
36 * Paragraphs::  Moving over paragraphs.
37 * Pages::       Moving over pages.
38 * Filling::     Filling or justifying text
39 * Case::        Changing the case of text
40 @end menu
41
42 @node Text Mode, Words, Text, Text
43 @section Text Mode
44
45 @findex tab-to-tab-stop
46 @findex edit-tab-stops
47 @cindex Text mode
48 @kindex TAB
49 @findex text-mode
50   You should use Text mode---rather than Fundamental or Lisp mode---to
51 edit files of text in a human language.  Invoke @kbd{M-x text-mode} to
52 enter Text mode.  In Text mode, @key{TAB} runs the function
53 @code{tab-to-tab-stop}, which allows you to use arbitrary tab stops set
54 with @kbd{M-x edit-tab-stops} (@pxref{Tab Stops}).  Features concerned
55 with comments in programs are turned off unless they are explicitly invoked.
56 The syntax table is changed so that periods are not considered part of a
57 word, while apostrophes, backspaces and underlines are.
58
59 @findex indented-text-mode
60   A similar variant mode is Indented Text mode, intended for editing
61 text in which most lines are indented.  This mode defines @key{TAB} to
62 run @code{indent-relative} (@pxref{Indentation}), and makes Auto Fill
63 indent the lines it creates.  As a result, a line made by Auto Filling,
64 or by @key{LFD}, is normally indented just like the previous line.  Use
65 @kbd{M-x indented-text-mode} to select this mode.
66
67 @vindex text-mode-hook
68   Entering Text mode or Indented Text mode calls the value of the
69 variable @code{text-mode-hook} with no arguments, if that value exists
70 and is not @code{nil}.  This value is also called when modes related to
71 Text mode are entered; this includes Nroff mode, @TeX{} mode, Outline
72 mode, and Mail mode.  Your hook can look at the value of
73 @code{major-mode} to see which of these modes is actually being entered.
74
75   Two modes similar to Text mode are of use for editing text that is to
76 be passed through a text formatter before achieving its final readable form.
77
78 @menu
79 * Nroff Mode::  The major mode for editing input to the formatter nroff.
80 * TeX Mode::    The major modes for editing input to the formatter TeX.
81
82
83   Another similar mode is used for editing outlines.  It allows you
84 to view the text at various levels of detail.  You can view either
85 the outline headings alone or both headings and text; you can also
86 hide some of the headings at lower levels from view to make the high
87 level structure more visible.
88
89
90 * Outline Mode:: The major mode for editing outlines.
91 @end menu
92
93 @node Nroff Mode, TeX Mode, Text Mode, Text Mode
94 @subsection Nroff Mode
95
96 @cindex nroff
97 @findex nroff-mode
98   Nroff mode is a mode like Text mode but modified to handle nroff
99 commands present in the text.  Invoke @kbd{M-x nroff-mode} to enter this
100 mode.  Nroff mode differs from Text mode in only a few ways.  All nroff
101 command lines are considered paragraph separators, so that filling never
102 garbles the nroff commands.  Pages are separated by @samp{.bp} commands.
103 Comments start with backslash-doublequote.  There are also three special
104 commands that are not available in Text mode:
105
106 @findex forward-text-line
107 @findex backward-text-line
108 @findex count-text-lines
109 @kindex M-n
110 @kindex M-p
111 @kindex M-?
112 @table @kbd
113 @item M-n
114 Move to the beginning of the next line that isn't an nroff command
115 (@code{forward-text-line}).  An argument is a repeat count.
116 @item M-p
117 Like @kbd{M-n} but move up (@code{backward-text-line}).
118 @item M-?
119 Prints in the echo area the number of text lines (lines that are not
120 nroff commands) in the region (@code{count-text-lines}).
121 @end table
122
123 @findex electric-nroff-mode
124   The other feature of Nroff mode is Electric Nroff newline mode.  
125 This is a minor mode that you can turn on or off with
126 @kbd{M-x electric-nroff-mode} (@pxref{Minor Modes}).  When the mode is
127 on and you use @key{RET} to end a line containing an nroff command
128 that opens a kind of grouping, Emacs automatically inserts the matching
129 nroff command to close that grouping on the following line.  For
130 example, if you are at the beginning of a line and type @kbd{.@:(b
131 @key{RET}}, the matching command @samp{.)b} will be inserted on a new
132 line following point.
133
134 @vindex nroff-mode-hook
135   Entering Nroff mode calls the value of the variable
136 @code{text-mode-hook} with no arguments, if that value exists and is not
137 @code{nil}; then it does the same with the variable
138 @code{nroff-mode-hook}.
139
140 @node TeX Mode, Outline Mode, Nroff Mode, Text Mode
141 @subsection @TeX{} Mode
142 @cindex TeX
143 @cindex LaTeX
144 @findex TeX-mode
145 @findex tex-mode
146 @findex plain-tex-mode
147 @findex LaTeX-mode
148 @findex plain-TeX-mode
149 @findex latex-mode
150
151   @TeX{} is a powerful text formatter written by Donald Knuth; like GNU
152 Emacs, it is free.  La@TeX{} is a simplified input format for @TeX{},
153 implemented by @TeX{} macros.  It is part of @TeX{}.@refill
154
155   Emacs has a special @TeX{} mode for editing @TeX{} input files.
156 It provides facilities for checking the balance of delimiters and for
157 invoking @TeX{} on all or part of the file.
158
159   @TeX{} mode has two variants, Plain @TeX{} mode and La@TeX{} mode,
160 which are two distinct major modes that differ only slightly.  These
161 modes are designed for editing the two different input formats.  The
162 command @kbd{M-x tex-mode} looks at the contents of a buffer to
163 determine whether it appears to be La@TeX{} input or not; it then
164 selects the appropriate mode.  If it can't tell which is right (e.g.,
165 the buffer is empty), the variable @code{tex-default-mode} controls
166 which mode is used.
167
168   The commands @kbd{M-x plain-tex-mode} and @kbd{M-x latex-mode}
169 explicitly select one of the variants of @TeX{} mode.  Use these
170 commands when @kbd{M-x tex-mode} does not guess right.@refill
171
172 @menu
173 * Editing: TeX Editing.   Special commands for editing in TeX mode.
174 * Printing: TeX Print.    Commands for printing part of a file with TeX.
175 @end menu
176
177   @TeX{} for Unix systems can be obtained from the University of Washington
178 for a distribution fee.
179
180   To order a full distribution, send $140.00 for a 1/2 inch
181 9-track tape, $165.00 for two 4-track 1/4 inch cartridge tapes
182 (foreign sites $150.00, for 1/2 inch, $175.00 for 1/4 inch, to cover
183 the extra postage) payable to the University of Washington to:
184
185 @display
186 The Director
187 Northwest Computer Support Group,  DW-10
188 University of Washington
189 Seattle, Washington 98195
190 @end display
191
192 @noindent
193 Purchase orders are acceptable, but there is an extra charge of
194 $10.00 to pay for processing charges. (The total cost comes to $150 
195 for domestic sites, $175 for foreign sites).
196
197   The normal distribution is a tar tape, blocked 20, 1600 bpi, on an
198 industry standard 2400 foot half-inch reel.  The physical format for
199 the 1/4 inch streamer cartridges uses QIC-11, 8000 bpi, 4-track
200 serpentine recording for the SUN.  Also, SystemV tapes can be written
201 in cpio format, blocked 5120 bytes, ASCII headers.
202
203 @node TeX Editing,TeX Print,TeX Mode,TeX Mode
204 @subsubsection @TeX{} Editing Commands
205
206   Here are the special commands provided in @TeX{} mode for editing the
207 text of the file.
208
209 @table @kbd
210 @item "
211 Insert, according to context, either @samp{``} or @samp{"} or
212 @samp{''} (@code{TeX-insert-quote}).
213 @item @key{LFD}
214 Insert a paragraph break (two newlines) and check the previous
215 paragraph for unbalanced braces or dollar signs
216 (@code{tex-terminate-@*paragraph}).
217 @item M-x validate-tex-buffer
218 Check each paragraph in the buffer for unbalanced braces or dollar signs.
219 @item C-c @{
220 Insert @samp{@{@}} and position point between them (@code{tex-insert-braces}).
221 @item C-c @}
222 Move forward past the next unmatched close brace (@code{up-list}).
223 @item C-c C-e
224 Close a block for La@TeX{} (@code{tex-close-latex-block}).
225 @end table
226
227 @findex tex-insert-quote
228 @kindex " (TeX mode)
229   In @TeX{}, the character @samp{"} is not normally used; you use @samp{``}
230 to start a quotation and @samp{''} to end one.  @TeX{} mode defines the key
231 @kbd{"} to insert @samp{``} after whitespace or an open brace, @samp{"}
232 after a backslash, or @samp{''} otherwise.  This is done by the command
233 @code{tex-insert-quote}.  If you need the character @samp{"} itself in
234 unusual contexts, use @kbd{C-q} to insert it.  Also, @kbd{"} with a
235 numeric argument always inserts that number of @samp{"} characters.
236
237   In @TeX{} mode, @samp{$} has a special syntax code which attempts to
238 understand the way @TeX{} math mode delimiters match.  When you insert a
239 @samp{$} that is meant to exit math mode, the position of the matching
240 @samp{$} that entered math mode is displayed for a second.  This is the
241 same feature that displays the open brace that matches a close brace that
242 is inserted.  However, there is no way to tell whether a @samp{$} enters
243 math mode or leaves it; so when you insert a @samp{$} that enters math
244 mode, the previous @samp{$} position is shown as if it were a match, even
245 though they are actually unrelated.
246
247 @findex tex-insert-braces
248 @kindex C-c @{ (TeX mode)
249 @findex up-list
250 @kindex C-c @} (TeX mode)
251   If you prefer to keep braces balanced at all times, you can use @kbd{C-c @{}
252 (@code{tex-insert-braces}) to insert a pair of braces.  It leaves point
253 between the two braces so you can insert the text that belongs inside.
254 Afterward, use the command @kbd{C-c @}} (@code{up-list}) to move forward
255 past the close brace.
256
257 @findex validate-tex-buffer
258 @findex tex-terminate-paragraph
259 @kindex LFD (TeX mode)
260   There are two commands for checking the matching of braces.  @key{LFD}
261 (@code{tex-terminate-paragraph}) checks the paragraph before point, and
262 inserts two newlines to start a new paragraph.  It prints a message in the
263 echo area if any mismatch is found.  @kbd{M-x validate-tex-buffer} checks
264 the entire buffer, paragraph by paragraph.  When it finds a paragraph that
265 contains a mismatch, it displays point at the beginning of the paragraph
266 for a few seconds and pushes a mark at that spot.  Scanning continues
267 until the whole buffer has been checked or until you type another key.
268 The positions of the last several paragraphs with mismatches can be
269 found in the mark ring (@pxref{Mark Ring}).
270
271   Note that square brackets and parentheses, not just braces, are
272 matched in @TeX{} mode.  This is wrong if you want to  check @TeX{} syntax.
273 However, parentheses and square brackets are likely to be used in text as
274 matching delimiters and it is useful for the various motion commands and
275 automatic match display to work with them.
276
277 @findex tex-close-latex-block
278 @kindex C-c C-f (LaTeX mode)
279   In La@TeX{} input, @samp{\begin} and @samp{\end} commands must balance.
280 After you insert a @samp{\begin}, use @kbd{C-c C-f}
281 (@code{tex-close-latex-block}) to insert automatically a matching
282 @samp{\end} (on a new line following the @samp{\begin}).  A blank line is
283 inserted between the two, and point is left there.@refill
284
285 @node TeX Print,,TeX Editing,TeX Mode
286 @subsubsection @TeX{} Printing Commands
287
288   You can invoke @TeX{} as an inferior of Emacs on either the entire
289 contents of the buffer or just a region at a time.  Running @TeX{} in
290 this way on just one chapter is a good way to see what your changes
291 look like without taking the time to format the entire file.
292
293 @table @kbd
294 @item C-c C-r
295 Invoke @TeX{} on the current region, plus the buffer's header
296 (@code{tex-region}).
297 @item C-c C-b
298 Invoke @TeX{} on the entire current buffer (@code{tex-buffer}).
299 @item C-c C-l
300 Recenter the window showing output from the inferior @TeX{} so that
301 the last line can be seen (@code{tex-recenter-output-buffer}).
302 @item C-c C-k
303 Kill the inferior @TeX{} (@code{tex-kill-job}).
304 @item C-c C-p
305 Print the output from the last @kbd{C-c C-r} or @kbd{C-c C-b} command
306 (@code{tex-print}).
307 @item C-c C-q
308 Show the printer queue (@code{tex-show-print-queue}).
309 @end table
310
311 @findex tex-buffer
312 @kindex C-c C-b (TeX mode)
313 @findex tex-print
314 @kindex C-c C-p (TeX mode)
315 @findex tex-show-print-queue
316 @kindex C-c C-q (TeX mode)
317   You can pass the current buffer through an inferior @TeX{} using
318 @kbd{C-c C-b} (@code{tex-buffer}).  The formatted output appears in a file
319 in @file{/tmp}; to print it, type @kbd{C-c C-p} (@code{tex-print}).
320 Afterward use @kbd{C-c C-q} (@code{tex-show-print-queue}) to view the
321 progress of your output towards being printed.
322
323 @findex tex-kill-job
324 @kindex C-c C-k (TeX mode)
325 @findex tex-recenter-output-buffer
326 @kindex C-c C-l (TeX mode)
327   The console output from @TeX{}, including any error messages, appears in a
328 buffer called @samp{*TeX-shell*}.  If @TeX{} gets an error, you can switch
329 to this buffer and feed it input (this works as in Shell mode;
330 @pxref{Interactive Shell}).  Without switching to this buffer, you can scroll
331 it so that its last line is visible by typing @kbd{C-c C-l}.
332
333   Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if
334 you see that its output is no longer useful.  Using @kbd{C-c C-b} or
335 @kbd{C-c C-r} also kills any @TeX{} process still running.@refill
336
337 @findex tex-region
338 @kindex C-c C-r (TeX mode)
339   You can pass an arbitrary region through an inferior @TeX{} by typing
340 @kbd{C-c C-r} (@code{tex-region}).  This is tricky, however, because
341 most files of @TeX{} input contain commands at the beginning to set
342 parameters and define macros.  Without them, no later part of the file
343 will format correctly.  To solve this problem, @kbd{C-c C-r} allows you
344 to designate a part of the file as containing essential commands; it is
345 included before the specified region as part of the input to @TeX{}.
346 The designated part of the file is called the @dfn{header}.
347
348 @cindex header (TeX mode)
349   To indicate the bounds of the header in Plain @TeX{} mode, insert two
350 special strings in the file: @samp{%**start of header} before the
351 header, and @samp{%**end of header} after it.  Each string must appear
352 entirely on one line, but there may be other text on the line before or
353 after.  The lines containing the two strings are included in the header.
354 If @samp{%**start of header} does not appear within the first 100 lines of
355 the buffer, @kbd{C-c C-r} assumes there is no header.
356
357   In La@TeX{} mode, the header begins with @samp{\documentstyle} and ends
358 with @*@samp{\begin@{document@}}.  These are commands that La@TeX{} requires
359 you to use, so you don't need to do anything special to identify the
360 header.
361
362 @vindex TeX-mode-hook
363 @vindex LaTeX-mode-hook
364 @vindex plain-TeX-mode-hook
365   When you enter either kind of @TeX{} mode, Emacs calls with no
366 arguments the value of the variable @code{text-mode-hook}, if that value
367 exists and is not @code{nil}.  Emacs then calls the variable
368 @code{TeX-mode-hook} and either @code{plain-TeX-mode-hook} or
369 @code{LaTeX-mode-hook} under the same conditions.
370
371 @node Outline Mode,, TeX Mode, Text Mode
372 @subsection Outline Mode
373 @cindex outlines
374 @cindex selective display
375 @cindex invisible lines
376
377   Outline mode is a major mode similar to Text mode but intended for editing
378 outlines.  It allows you to make parts of the text temporarily invisible
379 so that you can see just the overall structure of the outline.  Type
380 @kbd{M-x outline-mode} to turn on Outline mode in the current buffer.
381
382 @vindex outline-mode-hook
383   When you enter Outline mode, Emacs calls with no arguments the value
384 of the variable @code{text-mode-hook}, if that value exists and is not
385 @code{nil}; then it does the same with the variable
386 @code{outline-mode-hook}.
387
388   When a line is invisible in outline mode, it does not appear on the
389 screen.  The screen appears exactly as if the invisible line
390 were deleted, except that an ellipsis (three periods in a row) appears
391 at the end of the previous visible line (only one ellipsis no matter
392 how many invisible lines follow).
393
394   All editing commands treat the text of the invisible line as part of the
395 previous visible line.  For example, @kbd{C-n} moves onto the next visible
396 line.  Killing an entire visible line, including its terminating newline,
397 really kills all the following invisible lines as well; yanking
398 everything back yanks the invisible lines and they remain invisible.
399
400 @menu
401 * Format: Outline Format.         What the text of an outline looks like.
402 * Motion: Outline Motion.         Special commands for moving through outlines.
403 * Visibility: Outline Visibility. Commands to control what is visible.
404 @end menu
405
406 @node Outline Format,Outline Motion,Outline Mode, Outline Mode
407 @subsubsection Format of Outlines
408
409 @cindex heading lines (Outline mode)
410 @cindex body lines (Outline mode)
411   Outline mode assumes that the lines in the buffer are of two types:
412 @dfn{heading lines} and @dfn{body lines}.  A heading line represents a
413 topic in the outline.  Heading lines start with one or more stars; the
414 number of stars determines the depth of the heading in the outline
415 structure.  Thus, a heading line with one star is a major topic; all the
416 heading lines with two stars between it and the next one-star heading
417 are its subtopics; and so on.  Any line that is not a heading line is a
418 body line.  Body lines belong to the preceding heading line.  Here is an
419 example:
420
421 @example
422 * Food
423
424 This is the body,
425 which says something about the topic of food.
426
427 ** Delicious Food
428
429 This is the body of the second-level header.
430
431 ** Distasteful Food
432
433 This could have
434 a body too, with
435 several lines.
436
437 *** Dormitory Food
438
439 * Shelter
440
441 A second first-level topic with its header line.
442 @end example
443
444   A heading line together with all following body lines is called
445 collectively an @dfn{entry}.  A heading line together with all following
446 deeper heading lines and their body lines is called a @dfn{subtree}.
447
448 @vindex outline-regexp
449  You can customize the criterion for distinguishing heading lines by
450 setting the variable @code{outline-regexp}.  Any line whose beginning
451 has a match for this regexp is considered a heading line.  Matches that
452 start within a line (not at the beginning) do not count.  The length of
453 the matching text determines the level of the heading; longer matches
454 make a more deeply nested level.  Thus, for example, if a text formatter
455 has commands @samp{@@chapter}, @samp{@@section} and @samp{@@subsection}
456 to divide the document into chapters and sections, you can make those
457 lines count as heading lines by setting @code{outline-regexp} to
458 @samp{"@@chap\\|@@\\(sub\\)*section"}.  Note the trick: the two words
459 @samp{chapter} and @samp{section} are the same length, but by defining
460 the regexp to match only @samp{chap} we ensure that the length of the
461 text matched on a chapter heading is shorter, so that Outline mode will
462 know that sections are contained in chapters.  This works as long as no
463 other command starts with @samp{@@chap}.
464
465   Outline mode makes a line invisible by changing the newline before it
466 into an ASCII Control-M (code 015).  Most editing commands that work on
467 lines treat an invisible line as part of the previous line because,
468 strictly speaking, it @i{is} part of that line, since there is no longer a
469 newline in between.  When you save the file in Outline mode, Control-M
470 characters are saved as newlines, so the invisible lines become ordinary
471 lines in the file.  Saving does not change the visibility status of a
472 line inside Emacs.
473
474 @node Outline Motion,Outline Visibility,Outline Format,Outline Mode
475 @subsubsection Outline Motion Commands
476
477    Some special commands in Outline mode move backward and forward to
478 heading lines.
479
480 @table @kbd
481 @item C-c C-n
482 Move point to the next visible heading line
483 (@code{outline-next-visible-heading}).
484 @item C-c C-p
485 Move point to the previous visible heading line @*
486 (@code{outline-previous-visible-heading}).
487 @item C-c C-f
488 Move point to the next visible heading line at the same level
489 as the one point is on (@code{outline-forward-same-level}).
490 @item C-c C-b
491 Move point to the previous visible heading line at the same level
492 (@code{outline-backward-same-level}).
493 @item C-c C-u
494 Move point up to a lower-level (more inclusive) visible heading line
495 (@code{outline-up-heading}).
496 @end table
497
498 @findex outline-next-visible-heading
499 @findex outline-previous-visible-heading
500 @kindex C-c C-n (Outline mode)
501 @kindex C-c C-p (Outline mode)
502   @kbd{C-c C-n} (@code{next-visible-heading}) moves down to the next
503 heading line.  @kbd{C-c C-p} (@code{previous-visible-heading}) moves
504 similarly backward.  Both accept numeric arguments as repeat counts.  The
505 names emphasize that invisible headings are skipped, but this is not really
506 a special feature.  All editing commands that look for lines ignore the
507 invisible lines automatically.@refill
508
509 @findex outline-up-heading
510 @findex outline-forward-same-level
511 @findex outline-backward-same-level
512 @kindex C-c C-f (Outline mode)
513 @kindex C-c C-b (Outline mode)
514 @kindex C-c C-u (Outline mode)
515   More advanced motion commands understand the levels of headings.
516 The commands @kbd{C-c C-f} (@code{outline-forward-same-level}) and
517 @kbd{C-c C-b} (@code{outline-backward-same-level}) move from one
518 heading line to another visible heading at the same depth in
519 the outline.  @kbd{C-c C-u} (@code{outline-up-heading}) moves
520 backward to another heading that is less deeply nested.
521
522 @node Outline Visibility,,Outline Motion,Outline Mode
523 @subsubsection Outline Visibility Commands
524
525   The other special commands of outline mode are used to make lines visible
526 or invisible.  Their names all start with @code{hide} or @code{show}.
527 Most of them exist as pairs of opposites.  They are not undoable; instead,
528 you can undo right past them.  Making lines visible or invisible is simply
529 not recorded by the undo mechanism.
530
531 @table @kbd
532 @item M-x hide-body
533 Make all body lines in the buffer invisible.
534 @item M-x show-all
535 Make all lines in the buffer visible.
536 @item C-c C-d
537 Make everything under this heading invisible, not including this
538 heading itself (@code{hide-subtree}).
539 @item C-c C-s
540 Make everything under this heading visible, including body,
541 subheadings, and their bodies (@code{show-subtree}).
542 @item M-x hide-leaves
543 Make the body of this heading line, and of all its subheadings,
544 invisible.
545 @item M-x show-branches
546 Make all subheadings of this heading line, at all levels, visible.
547 @item C-c C-i
548 Make immediate subheadings (one level down) of this heading line
549 visible (@code{show-children}).
550 @item M-x hide-entry
551 Make this heading line's body invisible.
552 @item M-x show-entry
553 Make this heading line's body visible.
554 @end table
555
556 @findex hide-entry
557 @findex show-entry
558   Two commands that are exact opposites are @kbd{M-x hide-entry} and
559 @kbd{M-x show-entry}.  They are used with point on a heading line, and
560 apply only to the body lines of that heading.  The subtopics and their
561 bodies are not affected.
562
563 @findex hide-subtree
564 @findex show-subtree
565 @kindex C-c C-d (Outline mode)
566 @kindex C-c C-h (Outline mode)
567 @cindex subtree (Outline mode)
568   Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) and
569 @kbd{C-c C-s} (@code{show-subtree}).  Both should be used when point is
570 on a heading line, and both apply to all the lines of that heading's
571 @dfn{subtree}: its body, all its subheadings, both direct and indirect, and
572 all of their bodies.  In other words, the subtree contains everything
573 following this heading line, up to and not including the next heading of
574 the same or higher rank.@refill
575
576 @findex hide-leaves
577 @findex show-branches
578   Intermediate between a visible subtree and an invisible one is having
579 all the subheadings visible but none of the body.  There are two commands
580 for doing this, one that hides the bodies and one that
581 makes the subheadings visible.  They are @kbd{M-x hide-leaves} and
582 @kbd{M-x show-branches}.
583
584 @kindex C-c C-i (Outline mode)
585 @findex show-children
586   A little weaker than @code{show-branches} is @kbd{C-c C-i}
587 (@code{show-children}).  It makes just the direct subheadings
588 visible---those one level down.  Deeper subheadings remain
589 invisible.@refill
590
591 @findex hide-body
592 @findex show-all
593   Two commands have a blanket effect on the whole file.  @kbd{M-x
594 hide-body} makes all body lines invisible, so that you see just the
595 outline structure.  @kbd{M-x show-all} makes all lines visible.  You can
596 think of these commands as a pair of opposites even though @kbd{M-x
597 show-all} applies to more than just body lines.
598
599 @vindex selective-display-ellipses
600 You can turn off the use of ellipses at the ends of visible lines by
601 setting @code{selective-display-ellipses} to @code{nil}.  The result is
602 no visible indication of the presence of invisible lines.
603
604 @node Words, Sentences, Text Mode, Text
605 @section Words
606 @cindex words
607 @cindex Meta
608
609   Emacs has commands for moving over or operating on words.  By convention,
610 the keys for them are all @kbd{Meta-} characters.
611
612 @c widecommands
613 @table @kbd
614 @item M-f
615 Move forward over a word (@code{forward-word}).
616 @item M-b
617 Move backward over a word (@code{backward-word}).
618 @item M-d
619 Kill up to the end of a word (@code{kill-word}).
620 @item M-@key{DEL}
621 Kill back to the beginning of a word (@code{backward-kill-word}).
622 @item M-@@
623 Mark the end of the next word (@code{mark-word}).
624 @item M-t
625 Transpose two words;  drag a word forward
626 or backward across other words (@code{transpose-words}).
627 @end table
628
629   Notice how these keys form a series that parallels the
630 character-based @kbd{C-f}, @kbd{C-b}, @kbd{C-d}, @kbd{C-t} and
631 @key{DEL}.  @kbd{M-@@} is related to @kbd{C-@@}, which is an alias for
632 @kbd{C-@key{SPC}}.@refill
633
634 @kindex M-f
635 @kindex M-b
636 @findex forward-word
637 @findex backward-word
638   The commands @kbd{Meta-f} (@code{forward-word}) and @kbd{Meta-b}
639 (@code{backward-word}) move forward and backward over words.  They are
640 analogous to @kbd{Control-f} and @kbd{Control-b}, which move over single
641 characters.  Like their @kbd{Control-} analogues, @kbd{Meta-f} and
642 @kbd{Meta-b} move several words if given an argument.  @kbd{Meta-f} with a
643 negative argument moves backward, and @kbd{Meta-b} with a negative argument
644 moves forward.  Forward motion stops after the last letter of the
645 word, while backward motion stops before the first letter.@refill
646
647 @kindex M-d
648 @findex kill-word
649   @kbd{Meta-d} (@code{kill-word}) kills the word after point.  To be
650 precise, it kills everything from point to the place @kbd{Meta-f} would
651 move to.  Thus, if point is in the middle of a word, @kbd{Meta-d} kills
652 just the part after point.  If some punctuation comes between point and the
653 next word, it is killed along with the word.  (To kill only the
654 next word but not the punctuation before it, simply type @kbd{Meta-f} to get
655 to the end and kill the word backwards with @kbd{Meta-@key{DEL}}.)
656 @kbd{Meta-d} takes arguments just like @kbd{Meta-f}.
657
658 @findex backward-kill-word
659 @kindex M-DEL
660   @kbd{Meta-@key{DEL}} (@code{backward-kill-word}) kills the word before
661 point.  It kills everything from point back to where @kbd{Meta-b} would
662 move to.  If point is after the space in @w{@samp{FOO, BAR}}, then
663 @w{@samp{FOO, }} is killed.   To kill just @samp{FOO}, type
664 @kbd{Meta-b Meta-d} instead of @kbd{Meta-@key{DEL}}.
665
666 @cindex transposition
667 @kindex M-t
668 @findex transpose-words
669   @kbd{Meta-t} (@code{transpose-words}) exchanges the word before or
670 containing point with the following word.  The delimiter characters
671 between the words do not move.  For example, transposing @w{@samp{FOO,
672 BAR}} results in @w{@samp{BAR, FOO}} rather than @samp{@w{BAR FOO,}}.
673 @xref{Transpose}, for more on transposition and on arguments to
674 transposition commands.
675
676 @kindex M-@@
677 @findex mark-word
678   To operate on the next @var{n} words with an operation which applies
679 between point and mark, you can either set the mark at point and then move
680 over the words, or you can use the command @kbd{Meta-@@} (@code{mark-word})
681 which does not move point but sets the mark where @kbd{Meta-f} would move
682 to.  It can be given arguments just like @kbd{Meta-f}.
683
684 @cindex syntax table
685   The word commands' understanding of syntax is completely controlled by
686 the syntax table.  For example, any character can be declared to be a word
687 delimiter.  @xref{Syntax}.
688
689 @node Sentences, Paragraphs, Words, Text
690 @section Sentences
691 @cindex sentences
692
693   The Emacs commands for manipulating sentences and paragraphs are mostly
694 on @kbd{Meta-} keys, and therefore are like the word-handling commands.
695
696 @table @kbd
697 @item M-a
698 Move back to the beginning of the sentence (@code{backward-sentence}).
699 @item M-e
700 Move forward to the end of the sentence (@code{forward-sentence}).
701 @item M-k
702 Kill forward to the end of the sentence (@code{kill-sentence}).
703 @item C-x @key{DEL}
704 Kill back to the beginning of the sentence @*(@code{backward-kill-sentence}).
705 @end table
706
707 @kindex M-a
708 @kindex M-e
709 @findex backward-sentence
710 @findex forward-sentence
711   The commands @kbd{Meta-a} and @kbd{Meta-e} (@code{backward-sentence}
712 and @code{forward-sentence}) move to the beginning and end of the
713 current sentence, respectively.  They resemble @kbd{Control-a} and
714 @kbd{Control-e}, which move to the beginning and end of a line.  Unlike
715 their counterparts, @kbd{Meta-a} and @kbd{Meta-e} move over successive
716 sentences if repeated or given numeric arguments.  Emacs assumes
717 the typist's convention is followed, and thus considers a sentence to
718 end wherever there is a @samp{.}, @samp{?}, or @samp{!} followed by the
719 end of a line or two spaces, with any number of @samp{)}, @samp{]},
720 @samp{'}, or @samp{"} characters allowed in between.  A sentence also
721 begins or ends wherever a paragraph begins or ends.@refill
722
723   Neither @kbd{M-a} nor @kbd{M-e} moves past the newline or spaces beyond
724 the sentence edge at which it is stopping.
725
726 @kindex M-k
727 @kindex C-x DEL
728 @findex kill-sentence
729 @findex backward-kill-sentence
730  @kbd{M-a} and @kbd{M-e} have a corresponding kill command, just like
731 @kbd{C-a} and @kbd{C-e} have @kbd{C-k}.  The command is  @kbd{M-k}
732 (@code{kill-sentence}) which kills from point to the end of the
733 sentence.  With minus one as an argument it kills back to the beginning
734 of the sentence.  Larger arguments serve as repeat counts.@refill
735
736   There is a special command, @kbd{C-x @key{DEL}}
737 (@code{backward-kill-sentence}), for killing back to the beginning of a
738 sentence, which is useful when you change your mind in the middle of
739 composing text.@refill
740
741 @vindex sentence-end
742   The variable @code{sentence-end} controls recognition of the end of a
743 sentence.  It is a regexp that matches the last few characters of a
744 sentence, together with the whitespace following the sentence.  Its
745 normal value is:
746
747 @example
748 "[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*"
749 @end example
750
751 @noindent
752 This example is explained in the section on regexps.  @xref{Regexps}.
753
754 @node Paragraphs, Pages, Sentences, Text
755 @section Paragraphs
756 @cindex paragraphs
757 @kindex M-@{
758 @kindex M-@}
759 @findex backward-paragraph
760 @findex forward-paragraph
761
762   The Emacs commands for manipulating paragraphs are also @kbd{Meta-}
763 keys.
764
765 @table @kbd
766 @item M-@{
767 Move back to previous paragraph beginning @*(@code{backward-paragraph}).
768 @item M-@}
769 Move forward to next paragraph end (@code{forward-paragraph}).
770 @item M-h
771 Put point and mark around this or next paragraph (@code{mark-paragraph}).
772 @end table
773
774   @kbd{Meta-@{} moves to the beginning of the current or previous paragraph,
775 while @kbd{Meta-@}} moves to the end of the current or next paragraph.
776 Blank lines and text formatter command lines separate paragraphs and are
777 not part of any paragraph.  An indented line starts a new paragraph.
778
779   In major modes for programs (as opposed to Text mode), paragraphs begin
780 and end only at blank lines.  As a result, the paragraph commands continue to
781 be useful even though there are no paragraphs per se.
782
783   When there is a fill prefix, paragraphs are delimited by all lines
784 which don't start with the fill prefix.  @xref{Filling}.
785
786 @kindex M-h
787 @findex mark-paragraph
788    To operate on a paragraph, you can use the command
789 @kbd{Meta-h} (@code{mark-paragraph}) to set the region around it.  This
790 command puts point at the beginning and mark at the end of the paragraph
791 point was in.  If point is between paragraphs (in a run of blank lines or
792 at a boundary), the paragraph following point is surrounded by point and
793 mark.  If there are blank lines preceding the first line of the paragraph,
794 one of the blank lines is included in the region.  Thus, for example,
795 @kbd{M-h C-w} kills the paragraph around or after point.
796
797 @vindex paragraph-start
798 @vindex paragraph-separate
799   The precise definition of a paragraph boundary is controlled by the
800 variables @code{paragraph-separate} and @code{paragraph-start}.  The value
801 of @code{paragraph-start} is a regexp that matches any line that
802 either starts or separates paragraphs.  The value of
803 @code{paragraph-separate} is another regexp that  matches only lines
804 that separate paragraphs without being part of any paragraph.  Lines that
805 start a new paragraph and are contained in it must match both regexps.  For
806 example, normally @code{paragraph-start} is @code{"^[ @t{\}t@t{\}n@t{\}f]"}
807 and @code{paragraph-separate} is @code{"^[ @t{\}t@t{\}f]*$"}.@refill
808
809   Normally it is desirable for page boundaries to separate paragraphs.
810 The default values of these variables recognize the usual separator for
811 pages.
812
813 @node Pages, Filling, Paragraphs, Text
814 @section Pages
815
816 @cindex pages
817 @cindex formfeed
818   Files are often thought of as divided into @dfn{pages} by the
819 @dfn{formfeed} character (ASCII Control-L, octal code 014).  For
820 example, if a file is printed on a line printer, each ``page'' of the
821 file starts on a new page of paper.  Emacs treats a page-separator
822 character just like any other character.  It can be inserted with
823 @kbd{C-q C-l} or deleted with @key{DEL}.  You are free to
824 paginate your file or not.  However, since pages are often meaningful
825 divisions of the file, commands are provided to move over them and
826 operate on them.
827
828 @c WideCommands
829 @table @kbd
830 @item C-x [
831 Move point to previous page boundary (@code{backward-page}).
832 @item C-x ]
833 Move point to next page boundary (@code{forward-page}).
834 @item C-x C-p
835 Put point and mark around this page (or another page) (@code{mark-page}).
836 @item C-x l
837 Count the lines in this page (@code{count-lines-page}).
838 @end table
839
840 @kindex C-x [
841 @kindex C-x ]
842 @findex forward-page
843 @findex backward-page
844   The @kbd{C-x [} (@code{backward-page}) command moves point to
845 immediately after the previous page delimiter.  If point is already
846 right after a page delimiter, the command skips that one and stops at
847 the previous one.  A numeric argument serves as a repeat count.  The
848 @kbd{C-x ]} (@code{forward-page}) command moves forward past the next
849 page delimiter.
850
851 @kindex C-x C-p
852 @findex mark-page
853   The @kbd{C-x C-p} command (@code{mark-page}) puts point at the beginning
854 of the current page and the mark at the end.  The page delimiter at the end
855 is included (the mark follows it).  The page delimiter at the front is
856 excluded (point follows it).  You can follow this command  by @kbd{C-w} to
857 kill a page you want to move elsewhere.  If you insert the page after a page
858 delimiter, at a place where @kbd{C-x ]} or @kbd{C-x [} would take you,
859 the page will be properly delimited before and after once again.
860
861   A numeric argument to @kbd{C-x C-p} is used to specify which page to go
862 to, relative to the current one.  Zero means the current page.  One means
863 the next page, and @minus{}1 means the previous one.
864
865 @kindex C-x l
866 @findex count-lines-page
867   The @kbd{C-x l} command (@code{count-lines-page}) can help you decide
868 where to break a page in two.  It prints the total number of lines in
869 the current page in the echo area, then divides the lines into those
870 preceding the current line and those following it, for example
871
872 @example
873 Page has 96 (72+25) lines
874 @end example
875
876 @noindent
877   Notice that the sum is off by one; this is correct if point is not at the
878 beginning of a line.
879
880 @vindex page-delimiter
881   The variable @code{page-delimiter} should have as its value a regexp that
882 matches the beginning of a line that separates pages.  This defines
883 where pages begin.  The normal value of this variable is @code{"^@t{\}f"},
884 which matches a formfeed character at the beginning of a line.
885
886 @node Filling, Case, Pages, Text
887 @section Filling Text
888 @cindex filling
889
890   If you use Auto Fill mode, Emacs @dfn{fills} text (breaks it up into
891 lines that fit in a specified width) as you insert it.  When you alter
892 existing text it is often no longer be properly filled afterwards and
893 you can use explicit commands for filling.
894
895 @menu
896 * Auto Fill::     Auto Fill mode breaks long lines automatically.
897 * Fill Commands:: Commands to refill paragraphs and center lines.
898 * Fill Prefix::   Filling when every line is indented or in a comment, etc.
899 @end menu
900
901 @node Auto Fill, Fill Commands, Filling, Filling
902 @subsection Auto Fill Mode
903
904 @cindex Auto Fill mode
905
906   @dfn{Auto Fill} mode is a minor mode in which lines are broken
907 automatically when they become too wide.  Breaking happens only when
908 you type a @key{SPC} or @key{RET}.
909
910 @table @kbd
911 @item M-x auto-fill-mode
912 Enable or disable Auto Fill mode.
913 @item @key{SPC}
914 @itemx @key{RET}
915 In Auto Fill mode, break lines when appropriate.
916 @end table
917
918 @findex auto-fill-mode
919   @kbd{M-x auto-fill-mode} turns Auto Fill mode on if it was off, or off
920 if it was on.  With a positive numeric argument the command always turns
921 Auto Fill mode on, and with a negative argument it always turns it off.
922 The presence of the word @samp{Fill} in the mode line, inside the
923 parentheses, indicates that Auto Fill mode is in effect.  Auto Fill mode
924 is a minor mode; you can turn it on or off for each buffer individually.
925 @xref{Minor Modes}.
926
927   In Auto Fill mode, lines are broken automatically at spaces when they get
928 longer than desired.  Line breaking and rearrangement takes place
929 only when you type @key{SPC} or @key{RET}.  To insert a space
930 or newline without permitting line-breaking, type @kbd{C-q @key{SPC}} or
931 @kbd{C-q @key{LFD}} (recall that a newline is really a linefeed).
932 @kbd{C-o} inserts a newline without line breaking.
933
934   Auto Fill mode works well with Lisp mode: when it makes a new line in
935 Lisp mode, it indents that line with @key{TAB}.  If a line ending in a
936 Lisp comment gets too long, the text of the comment is split into two
937 comment lines.  Optionally, new comment delimiters are inserted at the
938 end of the first line and the beginning of the second, so that each line
939 is a separate comment.  The variable @code{comment-multi-line} controls
940 the choice (@pxref{Comments}).
941
942   Auto Fill mode does not refill entire paragraphs.  It can break lines but
943 cannot merge lines.  Editing in the middle of a paragraph can result in
944 a paragraph that is not correctly filled.  The easiest way to make the
945 paragraph properly filled again is using an explicit fill commands.
946
947   Many users like Auto Fill mode and want to use it in all text files.
948 The section on init files explains how you can arrange this
949 permanently for yourself.  @xref{Init File}.
950
951 @node Fill Commands, Fill Prefix, Auto Fill, Filling
952 @subsection Explicit Fill Commands
953
954 @table @kbd
955 @item M-q
956 Fill current paragraph (@code{fill-paragraph}).
957 @item M-g
958 Fill each paragraph in the region (@code{fill-region}).
959 @item C-x f
960 Set the fill column (@code{set-fill-column}).
961 @item M-x fill-region-as-paragraph
962 Fill the region, considering it as one paragraph.
963 @item M-s
964 Center a line.
965 @end table
966
967 @kindex M-q
968 @findex fill-paragraph
969   To refill a paragraph, use the command @kbd{Meta-q}
970 (@code{fill-paragraph}).  It causes the paragraph containing point, or
971 the one after point if point is between paragraphs, to be refilled.  All
972 line breaks are removed, and new ones are inserted where necessary.
973 @kbd{M-q} can be undone with @kbd{C-_}.  @xref{Undo}.@refill
974
975 @kindex M-g
976 @findex fill-region
977   To refill many paragraphs, use @kbd{M-g} (@code{fill-region}), which
978 divides the region into paragraphs and fills each of them.
979
980 @findex fill-region-as-paragraph
981   @kbd{Meta-q} and @kbd{Meta-g} use the same criteria as @kbd{Meta-h} for
982 finding paragraph boundaries (@pxref{Paragraphs}).  For more control, you
983 can use @kbd{M-x fill-region-as-paragraph}, which refills everything
984 between point and mark.  This command recognizes only blank lines as
985 paragraph separators.@refill
986
987 @cindex justification
988   A numeric argument to @kbd{M-g} or @kbd{M-q} causes it to
989 @dfn{justify} the text as well as filling it.  Extra spaces are inserted
990 to make the right margin line up exactly at the fill column.  To remove
991 the extra spaces, use @kbd{M-q} or @kbd{M-g} with no argument.@refill
992
993 @vindex auto-fill-inhibit-regexp
994 The variable @code{auto-fill-inhibit-regexp} takes as a value a regexp to
995 match lines that should not be auto-filled.
996
997 @kindex M-s
998 @cindex centering
999 @findex center-line
1000   The command @kbd{Meta-s} (@code{center-line}) centers the current line
1001 within the current fill column.  With an argument, it centers several lines
1002 individually and moves past them.
1003
1004 @vindex fill-column
1005   The maximum line width for filling is in the variable
1006 @code{fill-column}.  Altering the value of @code{fill-column} makes it
1007 local to the current buffer; until then, the default value---initially
1008 70---is in effect. @xref{Locals}.
1009
1010 @kindex C-x f
1011 @findex set-fill-column
1012   The easiest way to set @code{fill-column} is to use the command @kbd{C-x
1013 f} (@code{set-fill-column}).  With no argument, it sets @code{fill-column}
1014 to the current horizontal position of point.  With a numeric argument, it
1015 uses that number as the new fill column.
1016
1017 @node Fill Prefix,, Fill Commands, Filling
1018 @subsection The Fill Prefix
1019
1020 @cindex fill prefix
1021   To fill a paragraph in which each line starts with a special marker
1022 (which might be a few spaces, giving an indented paragraph), use the
1023 @dfn{fill prefix} feature.  The fill prefix is a string which is not
1024 included in filling.  Emacs expects every line to start with a fill
1025 prefix.
1026
1027 @table @kbd
1028 @item C-x .
1029 Set the fill prefix (@code{set-fill-prefix}).
1030 @item M-q
1031 Fill a paragraph using current fill prefix (@code{fill-paragraph}).
1032 @item M-x fill-individual-paragraphs
1033 Fill the region, considering each change of indentation as starting a
1034 new paragraph.
1035 @end table
1036
1037 @kindex C-x .
1038 @findex set-fill-prefix
1039   To specify a fill prefix, move to a line that starts with the desired
1040 prefix, put point at the end of the prefix, and give the command
1041 @w{@kbd{C-x .}}@: (@code{set-fill-prefix}).  That's a period after the
1042 @kbd{C-x}.  To turn off the fill prefix, specify an empty prefix: type
1043 @w{@kbd{C-x .}}@: with point at the beginning of a line.@refill
1044
1045   When a fill prefix is in effect, the fill commands remove the fill
1046 prefix from each line before filling and insert it on each line after
1047 filling.  Auto Fill mode also inserts the fill prefix inserted on new
1048 lines it creates.  Lines that do not start with the fill prefix are
1049 considered to start paragraphs, both in @kbd{M-q} and the paragraph
1050 commands; this is just right if you are using paragraphs with hanging
1051 indentation (every line indented except the first one).  Lines which are
1052 blank or indented once the prefix is removed also separate or start
1053 paragraphs; this is what you want if you are writing multi-paragraph
1054 comments with a comment delimiter on each line.
1055
1056 @vindex fill-prefix
1057   The fill prefix is stored in the variable @code{fill-prefix}.  Its value
1058 is a string, or @code{nil} when there is no fill prefix.  This is a
1059 per-buffer variable; altering the variable affects only the current buffer,
1060 but there is a default value which you can change as well.  @xref{Locals}.
1061
1062 @findex fill-individual-paragraphs
1063   Another way to use fill prefixes is through @kbd{M-x
1064 fill-individual-paragraphs}.  This function divides the region into groups
1065 of consecutive lines with the same amount and kind of indentation and fills
1066 each group as a paragraph, using its indentation as a fill prefix.
1067
1068 @node Case,, Filling, Text
1069 @section Case Conversion Commands
1070 @cindex case conversion
1071
1072   Emacs has commands for converting either a single word or any arbitrary
1073 range of text to upper case or to lower case.
1074
1075 @c WideCommands
1076 @table @kbd
1077 @item M-l
1078 Convert following word to lower case (@code{downcase-word}).
1079 @item M-u
1080 Convert following word to upper case (@code{upcase-word}).
1081 @item M-c
1082 Capitalize the following word (@code{capitalize-word}).
1083 @item C-x C-l
1084 Convert region to lower case (@code{downcase-region}).
1085 @item C-x C-u
1086 Convert region to upper case (@code{upcase-region}).
1087 @end table
1088
1089 @kindex M-l
1090 @kindex M-u
1091 @kindex M-c
1092 @cindex words
1093 @findex downcase-word
1094 @findex upcase-word
1095 @findex capitalize-word
1096   The word conversion commands are used most frequently.  @kbd{Meta-l}
1097 (@code{downcase-word}) converts the word after point to lower case,
1098 moving past it.  Thus, repeating @kbd{Meta-l} converts successive words.
1099 @kbd{Meta-u} (@code{upcase-word}) converts to all capitals instead,
1100 while @kbd{Meta-c} (@code{capitalize-word}) puts the first letter of the
1101 word into upper case and the rest into lower case.  The word conversion
1102 commands convert several words at once if given an argument.  They are
1103 especially convenient for converting a large amount of text from all
1104 upper case to mixed case: you can move through the text using
1105 @kbd{M-l}, @kbd{M-u}, or @kbd{M-c} on each word as appropriate,
1106 occasionally using @kbd{M-f} instead to skip a word.
1107
1108   When given a negative argument, the word case conversion commands apply
1109 to the appropriate number of words before point, but do not move point.
1110 This is convenient when you have just typed a word in the wrong case: you
1111 can give the case conversion command and continue typing.
1112
1113   If a word case conversion command is given in the middle of a word, it
1114 applies only to the part of the word which follows point.  This is just
1115 like what @kbd{Meta-d} (@code{kill-word}) does.  With a negative argument,
1116 case conversion applies only to the part of the word before point.
1117
1118 @kindex C-x C-l
1119 @kindex C-x C-u
1120 @cindex region
1121 @findex downcase-region
1122 @findex upcase-region
1123   The other case conversion commands are @kbd{C-x C-u}
1124 (@code{upcase-region}) and @kbd{C-x C-l} (@code{downcase-region}), which
1125 convert everything between point and mark to the specified case.  Point and
1126 mark do not move.@refill