home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / unix / info / emacs.i06 (.txt) < prev    next >
GNU Info File  |  1993-06-14  |  52KB  |  916 lines

  1. This is Info file ../info/emacs, produced by Makeinfo-1.47 from the
  2. input file emacs.tex.
  3.    This file documents the GNU Emacs editor.
  4.    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.
  5.    Permission is granted to make and distribute verbatim copies of this
  6. manual provided the copyright notice and this permission notice are
  7. preserved on all copies.
  8.    Permission is granted to copy and distribute modified versions of
  9. this manual under the conditions for verbatim copying, provided also
  10. that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
  11. General Public License" are included exactly as in the original, and
  12. provided that the entire resulting derived work is distributed under the
  13. terms of a permission notice identical to this one.
  14.    Permission is granted to copy and distribute translations of this
  15. manual into another language, under the above conditions for modified
  16. versions, except that the sections entitled "The GNU Manifesto",
  17. "Distribution" and "GNU General Public License" may be included in a
  18. translation approved by the author instead of in the original English.
  19. File: emacs,  Node: Windows,  Next: Major Modes,  Prev: Buffers,  Up: Top
  20. Multiple Windows
  21. ****************
  22.    Emacs can split the screen into two or many windows, which can
  23. display parts of different buffers, or different parts of one buffer.
  24. * Menu:
  25. * Basic Window::     Introduction to Emacs windows.
  26. * Split Window::     New windows are made by splitting existing windows.
  27. * Other Window::     Moving to another window or doing something to it.
  28. * Pop Up Window::    Finding a file or buffer in another window.
  29. * Change Window::    Deleting windows and changing their sizes.
  30. File: emacs,  Node: Basic Window,  Next: Split Window,  Prev: Windows,  Up: Windows
  31. Concepts of Emacs Windows
  32. =========================
  33.    When multiple windows are being displayed, each window has an Emacs
  34. buffer designated for display in it.  The same buffer may appear in more
  35. than one window; if it does, any changes in its text are displayed in
  36. all the windows where it appears.  But the windows showing the same
  37. buffer can show different parts of it, because each window has its own
  38. value of point.
  39.    At any time, one of the windows is the "selected window"; the buffer
  40. this window is displaying is the current buffer.  The terminal's cursor
  41. shows the location of point in this window.  Each other window has a
  42. location of point as well, but since the terminal has only one cursor
  43. there is no way to show where those locations are.
  44.    Commands to move point affect the value of point for the selected
  45. Emacs window only.  They do not change the value of point in any other
  46. Emacs window, even one showing the same buffer.  The same is true for
  47. commands such as `C-x b' to change the selected buffer in the selected
  48. window; they do not affect other windows at all.  However, there are
  49. other commands such as `C-x 4 b' that select a different window and
  50. switch buffers in it.  Also, all commands that display information in a
  51. window, including (for example) `C-h f' (`describe-function') and `C-x
  52. C-b' (`list-buffers'), work by switching buffers in a nonselected window
  53. without affecting the selected window.
  54.    Each window has its own mode line, which displays the buffer name,
  55. modification status and major and minor modes of the buffer that is
  56. displayed in the window.  *Note Mode Line::, for full details on the
  57. mode line.
  58. File: emacs,  Node: Split Window,  Next: Other Window,  Prev: Basic Window,  Up: Windows
  59. Splitting Windows
  60. =================
  61. `C-x 2'
  62.      Split the selected window into two windows, one above the other
  63.      (`split-window-vertically').
  64. `C-x 5'
  65.      Split the selected window into two windows positioned side by side
  66.      (`split-window-horizontally').
  67.    The command `C-x 2' (`split-window-vertically') breaks the selected
  68. window into two windows, one above the other.  Both windows start out
  69. displaying the same buffer, with the same value of point.  By default
  70. the two windows each get half the height of the window that was split; a
  71. numeric argument specifies how many lines to give to the top window.
  72.    `C-x 5' (`split-window-horizontally') breaks the selected window
  73. into two side-by-side windows.  A numeric argument specifies how many
  74. columns to give the one on the left.  A line of vertical bars separates
  75. the two windows.  Windows that are not the full width of the screen
  76. have mode lines, but they are truncated; also, they do not always
  77. appear in inverse video, because, the Emacs display routines have not
  78. been taught how to display a region of inverse video that is only part
  79. of a line on the screen.
  80.    When a window is less than the full width, text lines too long to
  81. fit are frequent.  Continuing all those lines might be confusing.  The
  82. variable `truncate-partial-width-windows' can be set non-`nil' to force
  83. truncation in all windows less than the full width of the screen,
  84. independent of the buffer being displayed and its value for
  85. `truncate-lines'.  *Note Continuation Lines::.
  86.    Horizontal scrolling is often used in side-by-side windows. *Note
  87. Display::.
  88. File: emacs,  Node: Other Window,  Next: Pop Up Window,  Prev: Split Window,  Up: Windows
  89. Using Other Windows
  90. ===================
  91. `C-x o'
  92.      Select another window (`other-window').  That is `o', not zero.
  93. `C-M-v'
  94.      Scroll the next window (`scroll-other-window').
  95. `M-x compare-windows'
  96.      Find next place where the text in the selected window does not
  97.      match the text in the next window.
  98.    To select a different window, use `C-x o' (`other-window'). That is
  99. an `o', for `other', not a zero.  When there are more than two windows,
  100. this command moves through all the windows in a cyclic order, generally
  101. top to bottom and left to right.  From the rightmost and bottommost
  102. window, it goes back to the one at the upper left corner.  A numeric
  103. argument means to move several steps in the cyclic order of windows.  A
  104. negative argument moves around the cycle in the opposite order. When
  105. the minibuffer is active, the minibuffer is the last window in the
  106. cycle; you can switch from the minibuffer window to one of the other
  107. windows, and later switch back and finish supplying the minibuffer
  108. argument that is requested.  *Note Minibuffer Edit::.
  109.    The usual scrolling commands (*note Display::.) apply to the selected
  110. window only, but there is one command to scroll the next window.
  111. `C-M-v' (`scroll-other-window') scrolls the window that `C-x o' would
  112. select.  It takes arguments, positive and negative, like `C-v'.
  113.    The command `M-x compare-windows' compares the text in the current
  114. window with that in the next window.  Comparison starts at point in each
  115. window.  Point moves forward in each window, a character at a time in
  116. each window, until the next characters in the two windows are
  117. different.  Then the command is finished.
  118. File: emacs,  Node: Pop Up Window,  Next: Change Window,  Prev: Other Window,  Up: Windows
  119. Displaying in Another Window
  120. ============================
  121.    `C-x 4' is a prefix key for commands that select another window
  122. (splitting the window if there is only one) and select a buffer in that
  123. window.  Different `C-x 4' commands have different ways of finding the
  124. buffer to select.
  125. `C-x 4 b BUFNAME RET'
  126.      Select buffer BUFNAME in another window.  This runs
  127.      `switch-to-buffer-other-window'.
  128. `C-x 4 f FILENAME RET'
  129.      Visit file FILENAME and select its buffer in another window.  This
  130.      runs `find-file-other-window'.  *Note Visiting::.
  131. `C-x 4 d DIRECTORY RET'
  132.      Select a Dired buffer for directory DIRECTORY in another window.
  133.      This runs `dired-other-window'.  *Note Dired::.
  134. `C-x 4 m'
  135.      Start composing a mail message in another window.  This runs
  136.      `mail-other-window', and its same-window version is `C-x m' (*note
  137.      Sending Mail::.).
  138. `C-x 4 .'
  139.      Find a tag in the current tag table in another window.  This runs
  140.      `find-tag-other-window', the multiple-window variant of `M-.'
  141.      (*note Tags::.).
  142. File: emacs,  Node: Change Window,  Prev: Pop Up Window,  Up: Windows
  143. Deleting and Rearranging Windows
  144. ================================
  145. `C-x 0'
  146.      Get rid of the selected window (`kill-window').  That is a zero.
  147. `C-x 1'
  148.      Get rid of all windows except the selected one
  149.      (`delete-other-windows').
  150. `C-x ^'
  151.      Make the selected window taller, at the expense of the other(s)
  152.      (`enlarge-window').
  153. `C-x }'
  154.      Make the selected window wider (`enlarge-window-horizontally').
  155.    To delete a window, type `C-x 0' (`delete-window').  (That is a
  156. zero.)  The space occupied by the deleted window is distributed among
  157. the other active windows (but not the minibuffer window, even if that
  158. is active at the time).  Once a window is deleted, its attributes are
  159. forgotten; there is no automatic way to make another window of the same
  160. shape or showing the same buffer.  But the buffer continues to exist,
  161. and you can select it in any window with `C-x b'.
  162.    `C-x 1' (`delete-other-windows') is more powerful than `C-x 0'; it
  163. deletes all the windows except the selected one (and the minibuffer);
  164. the selected window expands to use the whole screen except for the echo
  165. area.
  166.    To readjust the division of space among existing windows, use `C-x ^'
  167. (`enlarge-window').  It makes the currently selected window get one
  168. line bigger, or as many lines as is specified with a numeric argument.
  169. With a negative argument, it makes the selected window smaller.  `C-x
  170. }' (`enlarge-window-horizontally') makes the selected window wider by
  171. the specified number of columns.  The extra screen space given to a
  172. window comes from one of its neighbors, if that is possible; otherwise,
  173. all the competing windows are shrunk in the same proportion.  If this
  174. makes any windows too small, those windows are deleted and their space
  175. is divided up. The minimum size is specified by the variables
  176. `window-min-height' and `window-min-width'.
  177. File: emacs,  Node: Major Modes,  Next: Indentation,  Prev: Windows,  Up: Top
  178. Major Modes
  179. ***********
  180.    Emacs has many different "major modes", each of which customizes
  181. Emacs for editing text of a particular sort.  The major modes are
  182. mutually exclusive, and each buffer has one major mode at any time. 
  183. The mode line normally contains the name of the current major mode, in
  184. parentheses. *Note Mode Line::.
  185.    The least specialized major mode is called "Fundamental mode".  This
  186. mode has no mode-specific redefinitions or variable settings, so that
  187. each Emacs command behaves in its most general manner, and each option
  188. is in its default state.  For editing any specific type of text, such
  189. as Lisp code or English text, you should switch to the appropriate
  190. major mode, such as Lisp mode or Text mode.
  191.    Selecting a major mode changes the meanings of a few keys to become
  192. more specifically adapted to the language being edited.  The ones which
  193. are changed frequently are TAB, DEL, and LFD.  In addition, the
  194. commands which handle comments use the mode to determine how comments
  195. are to be delimited.  Many major modes redefine the syntactical
  196. properties of characters appearing in the buffer.  *Note Syntax::.
  197.    The major modes fall into three major groups.  Lisp mode (which has
  198. several variants), C mode and Muddle mode are for specific programming
  199. languages.  Text mode, Nroff mode, TeX mode and Outline mode are for
  200. editing English text.  The remaining major modes are not intended for
  201. use on users' files; they are used in buffers created for specific
  202. purposes by Emacs, such as Dired mode for buffers made by Dired (*note
  203. Dired::.), and Mail mode for buffers made by `C-x m' (*note Sending
  204. Mail::.), and Shell mode for buffers used for communicating with an
  205. inferior shell process (*note Interactive Shell::.).
  206.    Most programming language major modes specify that only blank lines
  207. separate paragraphs.  This is so that the paragraph commands remain
  208. useful. *Note Paragraphs::.  They also cause Auto Fill mode to use the
  209. definition of TAB to indent the new lines it creates.  This is because
  210. most lines in a program are usually indented.  *Note Indentation::.
  211. * Menu:
  212. * Choosing Modes::     How major modes are specified or chosen.
  213. File: emacs,  Node: Choosing Modes,  Prev: Major Modes,  Up: Major Modes
  214. How Major Modes are Chosen
  215. ==========================
  216.    You can select a major mode explicitly for the current buffer, but
  217. most of the time Emacs determines which mode to use based on the file
  218. name or some text in the file.
  219.    Explicit selection of a new major mode is done with a `M-x' command.
  220. From the name of a major mode, add `-mode' to get the name of a command
  221. to select that mode.  Thus, you can enter Lisp mode by executing `M-x
  222. lisp-mode'.
  223.    When you visit a file, Emacs usually chooses the right major mode
  224. based on the file's name.  For example, files whose names end in `.c'
  225. are edited in C mode.  The correspondence between file names and major
  226. mode is controlled by the variable `auto-mode-alist'.  Its value is a
  227. list in which each element has the form
  228.      (REGEXP . MODE-FUNCTION)
  229. For example, one element normally found in the list has the form
  230. `("\\.c$" . c-mode)', and it is responsible for selecting C mode for
  231. files whose names end in `.c'.  (Note that `\\' is needed in Lisp
  232. syntax to include a `\' in the string, which is needed to suppress the
  233. special meaning of `.' in regexps.)  The only practical way to change
  234. this variable is with Lisp code.
  235.    You can specify which major mode should be used for editing a certain
  236. file by a special sort of text in the first nonblank line of the file. 
  237. The mode name should appear in this line both preceded and followed by
  238. `-*-'.  Other text may appear on the line as well.  For example,
  239.      ;-*-Lisp-*-
  240. tells Emacs to use Lisp mode.  Note how the semicolon is used to make
  241. Lisp treat this line as a comment.  Such an explicit specification
  242. overrides any defaulting based on the file name.
  243.    Another format of mode specification is
  244.      -*-Mode: MODENAME;-*-
  245. which allows other things besides the major mode name to be specified.
  246. However, Emacs does not look for anything except the mode name.
  247.    The major mode can also be specified in a local variables list.
  248. *Note File Variables::.
  249.    When a file is visited that does not specify a major mode to use, or
  250. when a new buffer is created with `C-x b', the major mode used is that
  251. specified by the variable `default-major-mode'.  Normally this value is
  252. the symbol `fundamental-mode', which specifies Fundamental mode. If
  253. `default-major-mode' is `nil', the major mode is taken from the
  254. previously selected buffer.
  255. File: emacs,  Node: Indentation,  Next: Text,  Prev: Major Modes,  Up: Top
  256. Indentation
  257. ***********
  258. `TAB'
  259.      Indent current line "appropriately" in a mode-dependent fashion.
  260. `LFD'
  261.      Perform RET followed by TAB (`newline-and-indent').
  262. `M-^'
  263.      Merge two lines (`delete-indentation').  This would cancel out the
  264.      effect of LFD.
  265. `C-M-o'
  266.      Split line at point; text on the line after point becomes a new
  267.      line indented to the same column that it now starts in
  268.      (`split-line').
  269. `M-m'
  270.      Move (forward or back) to the first nonblank character on the
  271.      current line (`back-to-indentation').
  272. `C-M-\'
  273.      Indent several lines to same column (`indent-region').
  274. `C-x TAB'
  275.      Shift block of lines rigidly right or left (`indent-rigidly').
  276. `M-i'
  277.      Indent from point to the next prespecified tab stop column
  278.      (`tab-to-tab-stop').
  279. `M-x indent-relative'
  280.      Indent from point to under an indentation point in the previous
  281.      line.
  282.    Most programming languages have some indentation convention.  For
  283. Lisp code, lines are indented according to their nesting in
  284. parentheses.  The same general idea is used for C code, though many
  285. details are different.
  286.    Whatever the language, to indent a line, use the TAB command.  Each
  287. major mode defines this command to perform the sort of indentation
  288. appropriate for the particular language.  In Lisp mode, TAB aligns the
  289. line according to its depth in parentheses.  No matter where in the
  290. line you are when you type TAB, it aligns the line as a whole.  In C
  291. mode, TAB implements a subtle and sophisticated indentation style that
  292. knows about many aspects of C syntax.
  293.    In Text mode, TAB runs the command `tab-to-tab-stop', which indents
  294. to the next tab stop column.  You can set the tab stops with `M-x
  295. edit-tab-stops'.
  296. * Menu:
  297. * Indentation Commands:: Various commands and techniques for indentation.
  298. * Tab Stops::            You can set arbitrary "tab stops" and then
  299.                          indent to the next tab stop when you want to.
  300. * Just Spaces::          You can request indentation using just spaces.
  301. File: emacs,  Node: Indentation Commands,  Next: Tab Stops,  Prev: Indentation,  Up: Indentation
  302. Indentation Commands and Techniques
  303. ===================================
  304.    If you just want to insert a tab character in the buffer, you can
  305. type `C-q TAB'.
  306.    To move over the indentation on a line, do `Meta-m'
  307. (`back-to-indentation').  This command, given anywhere on a line,
  308. positions point at the first nonblank character on the line.
  309.    To insert an indented line before the current line, do `C-a C-o
  310. TAB'.  To make an indented line after the current line, use `C-e LFD'.
  311.    `C-M-o' (`split-line') moves the text from point to the end of the
  312. line vertically down, so that the current line becomes two lines.
  313. `C-M-o' first moves point forward over any spaces and tabs.  Then it
  314. inserts after point a newline and enough indentation to reach the same
  315. column point is on.  Point remains before the inserted newline; in this
  316. regard, `C-M-o' resembles `C-o'.
  317.    To join two lines cleanly, use the `Meta-^' (`delete-indentation')
  318. command to delete the indentation at the front of the current line, and
  319. the line boundary as well.  They are replaced by a single space, or by
  320. no space if at the beginning of a line or before a `)' or after a `('. 
  321. To delete just the indentation of a line, go to the beginning of the
  322. line and use `Meta-\' (`delete-horizontal-space'), which deletes all
  323. spaces and tabs around the cursor.
  324.    There are also commands for changing the indentation of several
  325. lines at once.  `Control-Meta-\' (`indent-region') gives each line which
  326. begins in the region the "usual" indentation by invoking TAB at the
  327. beginning of the line.  A numeric argument specifies the column to
  328. indent to, and each line is shifted left or right so that its first
  329. nonblank character appears in that column.  `C-x TAB'
  330. (`indent-rigidly') moves all of the lines in the region right by its
  331. argument (left, for negative arguments).  The whole group of lines moves
  332. rigidly sideways, which is how the command gets its name.
  333.    `M-x indent-relative' indents at point based on the previous line
  334. (actually, the last nonempty line.)  It inserts whitespace at point,
  335. moving point, until it is underneath an indentation point in the
  336. previous line. An indentation point is the end of a sequence of
  337. whitespace or the end of the line.  If point is farther right than any
  338. indentation point in the previous line, the whitespace before point is
  339. deleted and the first indentation point then applicable is used.  If no
  340. indentation point is applicable even then, `tab-to-tab-stop' is run
  341. (see next section).
  342.    `indent-relative' is the definition of TAB in Indented Text mode. 
  343. *Note Text::.
  344. File: emacs,  Node: Tab Stops,  Next: Just Spaces,  Prev: Indentation Commands,  Up: Indentation
  345. Tab Stops
  346. =========
  347.    For typing in tables, you can use Text mode's definition of TAB,
  348. `tab-to-tab-stop'.  This command inserts indentation before point,
  349. enough to reach the next tab stop column.  If you are not in Text mode,
  350. this function can be found on `M-i' anyway.
  351.    The tab stops used by `M-i' can be set arbitrarily by the user. They
  352. are stored in a variable called `tab-stop-list', as a list of
  353. column-numbers in increasing order.
  354.    The convenient way to set the tab stops is using `M-x
  355. edit-tab-stops', which creates and selects a buffer containing a
  356. description of the tab stop settings.  You can edit this buffer to
  357. specify different tab stops, and then type `C-c C-c' to make those new
  358. tab stops take effect.  In the tab stop buffer, `C-c C-c' runs the
  359. function `edit-tab-stops-note-changes' rather than its usual definition
  360. `save-buffer'.  `edit-tab-stops' records which buffer was current when
  361. you invoked it, and stores the tab stops back in that buffer; normally
  362. all buffers share the same tab stops and changing them in one buffer
  363. affects all, but if you happen to make `tab-stop-list' local in one
  364. buffer then `edit-tab-stops' in that buffer will edit the local
  365. settings.
  366.    Here is what the text representing the tab stops looks like for
  367. ordinary tab stops every eight columns.
  368.              :       :       :       :       :       :
  369.      0         1         2         3         4
  370.      0123456789012345678901234567890123456789012345678
  371.      To install changes, type C-c C-c
  372.    The first line contains a colon at each tab stop.  The remaining
  373. lines are present just to help you see where the colons are and know
  374. what to do.
  375.    Note that the tab stops that control `tab-to-tab-stop' have nothing
  376. to do with displaying tab characters in the buffer.  *Note Display
  377. Vars::, for more information on that.
  378. File: emacs,  Node: Just Spaces,  Prev: Tab Stops,  Up: Indentation
  379. Tabs vs. Spaces
  380. ===============
  381.    Emacs normally uses both tabs and spaces to indent lines.  If you
  382. prefer, all indentation can be made from spaces only.  To request this,
  383. set `indent-tabs-mode' to `nil'.  This is a per-buffer variable;
  384. altering the variable affects only the current buffer, but there is a
  385. default value which you can change as well.  *Note Locals::.
  386.    There are also commands to convert tabs to spaces or vice versa,
  387. always preserving the columns of all nonblank text.  `M-x tabify' scans
  388. the region for sequences of spaces, and converts sequences of at least
  389. three spaces to tabs if that can be done without changing indentation. 
  390. `M-x untabify' changes all tabs in the region to appropriate numbers of
  391. spaces.
  392. File: emacs,  Node: Text,  Next: Programs,  Prev: Indentation,  Up: Top
  393. Commands for Human Languages
  394. ****************************
  395.    The term "text" has two widespread meanings in our area of the
  396. computer field.  One is data that is a sequence of characters.  Any file
  397. that you edit with Emacs is text, in this sense of the word.  The other
  398. meaning is more restrictive: a sequence of characters in a human
  399. language for humans to read (possibly after processing by a text
  400. formatter), as opposed to a program or commands for a program.
  401.    Human languages have syntactic/stylistic conventions that can be
  402. supported or used to advantage by editor commands: conventions involving
  403. words, sentences, paragraphs, and capital letters.  This chapter
  404. describes Emacs commands for all of these things.  There are also
  405. commands for "filling", or rearranging paragraphs into lines of
  406. approximately equal length.  The commands for moving over and killing
  407. words, sentences and paragraphs, while intended primarily for editing
  408. text, are also often useful for editing programs.
  409.    Emacs has several major modes for editing human language text. If
  410. the file contains text pure and simple, use Text mode, which customizes
  411. Emacs in small ways for the syntactic conventions of text.  For text
  412. which contains embedded commands for text formatters, Emacs has other
  413. major modes, each for a particular text formatter.  Thus, for input to
  414. TeX, you would use TeX mode; for input to nroff, Nroff mode.
  415. * Menu:
  416. * Text Mode::   The major modes for editing text files.
  417. * Nroff Mode::  The major mode for editing input to the formatter nroff.
  418. * TeX Mode::    The major modes for editing input to the formatter TeX.
  419. * Outline Mode::The major mode for editing outlines.
  420. * Words::       Moving over and killing words.
  421. * Sentences::   Moving over and killing sentences.
  422. * Paragraphs::    Moving over paragraphs.
  423. * Pages::    Moving over pages.
  424. * Filling::     Filling or justifying text
  425. * Case::        Changing the case of text
  426. File: emacs,  Node: Text Mode,  Next: Words,  Prev: Text,  Up: Text
  427. Text Mode
  428. =========
  429.    Editing files of text in a human language ought to be done using Text
  430. mode rather than Lisp or Fundamental mode.  Invoke `M-x text-mode' to
  431. enter Text mode.  In Text mode, TAB runs the function
  432. `tab-to-tab-stop', which allows you to use arbitrary tab stops set with
  433. `M-x edit-tab-stops' (*note Tab Stops::.).  Features concerned with
  434. comments in programs are turned off except when explicitly invoked.  The
  435. syntax table is changed so that periods are not considered part of a
  436. word, while apostrophes, backspaces and underlines are.
  437.    A similar variant mode is Indented Text mode, intended for editing
  438. text in which most lines are indented.  This mode defines TAB to run
  439. `indent-relative' (*note Indentation::.), and makes Auto Fill indent
  440. the lines it creates.  The result is that normally a line made by Auto
  441. Filling, or by LFD, is indented just like the previous line.  Use `M-x
  442. indented-text-mode' to select this mode.
  443.    Entering Text mode or Indented Text mode calls with no arguments the
  444. value of the variable `text-mode-hook', if that value exists and is not
  445. `nil'.  This value is also called when modes related to Text mode are
  446. entered; this includes Nroff mode, TeX mode, Outline mode and Mail
  447. mode.  Your hook can look at the value of `major-mode' to see which of
  448. these modes is actually being entered.
  449. * Menu:
  450.   Two modes similar to Text mode are of use for editing text that is to
  451. be passed through a text formatter before achieving the form in which
  452. humans are to read it.
  453. * Nroff Mode::  The major mode for editing input to the formatter nroff.
  454. * TeX Mode::    The major modes for editing input to the formatter TeX.
  455.   Another similar mode is used for editing outlines.  It allows you
  456. to view the text at various levels of detail.  You can view either
  457. the outline headings alone or both headings and text; you can also
  458. hide some of the headings at lower levels from view to make the high
  459. level structure more visible.
  460. * Outline Mode::The major mode for editing outlines.
  461. File: emacs,  Node: Nroff Mode,  Next: TeX Mode,  Prev: Text Mode,  Up: Text Mode
  462. Nroff Mode
  463. ----------
  464.    Nroff mode is a mode like Text mode but modified to handle nroff
  465. commands present in the text.  Invoke `M-x nroff-mode' to enter this
  466. mode.  It differs from Text mode in only a few ways.  All nroff command
  467. lines are considered paragraph separators, so that filling will never
  468. garble the nroff commands.  Pages are separated by `.bp' commands. 
  469. Comments start with backslash-doublequote.  Also, three special
  470. commands are provided that are not in Text mode:
  471. `M-n'
  472.      Move to the beginning of the next line that isn't an nroff command
  473.      (`forward-text-line').  An argument is a repeat count.
  474. `M-p'
  475.      Like `M-n' but move up (`backward-text-line').
  476. `M-?'
  477.      Prints in the echo area the number of text lines (lines that are
  478.      not nroff commands) in the region (`count-text-lines').
  479.    The other feature of Nroff mode is that you can turn on Electric
  480. Nroff newline mode.  This is a minor mode that you can turn on or off
  481. with `M-x electric-nroff-mode' (*note Minor Modes::.).  When the mode
  482. is on, each time you use RET to end a line that contains an nroff
  483. command that opens a kind of grouping, the matching nroff command to
  484. close that grouping is automatically inserted on the following line. 
  485. For example, if you are at the beginning of a line and type `. ( b
  486. RET', the matching command `.)b' will be inserted on a new line
  487. following point.
  488.    Entering Nroff mode calls with no arguments the value of the variable
  489. `text-mode-hook', if that value exists and is not `nil'; then it does
  490. the same with the variable `nroff-mode-hook'.
  491. File: emacs,  Node: TeX Mode,  Next: Outline Mode,  Prev: Nroff Mode,  Up: Text Mode
  492. TeX Mode
  493. --------
  494.    TeX is a powerful text formatter written by Donald Knuth; it is also
  495. free, like GNU Emacs.  LaTeX is a simplified input format for TeX,
  496. implemented by TeX macros.  It comes with TeX.
  497.    Emacs has a special TeX mode for editing TeX input files. It
  498. provides facilities for checking the balance of delimiters and for
  499. invoking TeX on all or part of the file.
  500.    TeX mode has two variants, Plain TeX mode and LaTeX mode (actually
  501. two distinct major modes which differ only slightly).  They are
  502. designed for editing the two different input formats.  The command `M-x
  503. tex-mode' looks at the contents of the buffer to determine whether the
  504. contents appear to be LaTeX input or not; it then selects the
  505. appropriate mode.  If it can't tell which is right (e.g., the buffer is
  506. empty), the variable `TeX-default-mode' controls which mode is used.
  507.    The commands `M-x plain-tex-mode' and `M-x latex-mode' explicitly
  508. select the two variants of TeX mode.  Use these commands when `M-x
  509. tex-mode' does not guess right.
  510. * Menu:
  511. * Editing: TeX Editing.   Special commands for editing in TeX mode.
  512. * Printing: TeX Print.    Commands for printing part of a file with TeX.
  513.    TeX for Unix systems can be obtained from the University of
  514. Washington for a distribution fee.
  515.    To order a full distribution, send $140.00 for a 1/2 inch 9-track
  516. tape, $165.00 for two 4-track 1/4 inch cartridge tapes (foreign sites
  517. $150.00, for 1/2 inch, $175.00 for 1/4 inch, to cover the extra
  518. postage) payable to the University of Washington to:
  519.      The Director
  520.      Northwest Computer Support Group,  DW-10
  521.      University of Washington
  522.      Seattle, Washington 98195
  523. Purchase orders are acceptable, but there is an extra charge of $10.00,
  524. to pay for processing charges. (Total of $150 for domestic sites, $175
  525. for foreign sites).
  526.    The normal distribution is a tar tape, blocked 20, 1600 bpi, on an
  527. industry standard 2400 foot half-inch reel.  The physical format for
  528. the 1/4 inch streamer cartridges uses QIC-11, 8000 bpi, 4-track
  529. serpentine recording for the SUN.  Also, SystemV tapes can be written
  530. in cpio format, blocked 5120 bytes, ASCII headers.
  531. File: emacs,  Node: TeX Editing,  Next: TeX Print,  Prev: TeX Mode,  Up: TeX Mode
  532. TeX Editing Commands
  533. ....................
  534.    Here are the special commands provided in TeX mode for editing the
  535. text of the file.
  536.      Insert, according to context, either ```' or `"' or `'''
  537.      (`TeX-insert-quote').
  538. `LFD'
  539.      Insert a paragraph break (two newlines) and check the previous
  540.      paragraph for unbalanced braces or dollar signs
  541.      (`TeX-terminate-paragraph').
  542. `M-x validate-TeX-buffer'
  543.      Check each paragraph in the buffer for unbalanced braces or dollar
  544.      signs.
  545. `M-{'
  546.      Insert `{}' and position point between them (`TeX-insert-braces').
  547. `M-}'
  548.      Move forward past the next unmatched close brace (`up-list').
  549. `C-c C-f'
  550.      Close a block for LaTeX (`TeX-close-LaTeX-block').
  551.    In TeX, the character `"' is not normally used; one uses ```' to
  552. start a quotation and `''' to end one.  TeX mode defines the key `"' to
  553. insert ```' after whitespace or an open brace, `"' after a backslash,
  554. or `''' otherwise.  This is done by the command `TeX-insert-quote'.  If
  555. you need the character `"' itself in unusual contexts, use `C-q' to
  556. insert it.  Also, `"' with a numeric argument always inserts that
  557. number of `"' characters.
  558.    In TeX mode, `$' has a special syntax code which attempts to
  559. understand the way TeX math mode delimiters match.  When you insert a
  560. `$' that is meant to exit math mode, the position of the matching `$'
  561. that entered math mode is displayed for a second.  This is the same
  562. feature that displays the open brace that matches a close brace that is
  563. inserted.  However, there is no way to tell whether a `$' enters math
  564. mode or leaves it; so when you insert a `$' that enters math mode, the
  565. previous `$' position is shown as if it were a match, even though they
  566. are actually unrelated.
  567.    If you prefer to keep braces balanced at all times, you can use `M-{'
  568. (`TeX-insert-braces') to insert a pair of braces.  It leaves point
  569. between the two braces so you can insert the text that belongs inside.
  570. Afterward, use the command `M-}' (`up-list') to move forward past the
  571. close brace.
  572.    There are two commands for checking the matching of braces.  LFD
  573. (`TeX-terminate-paragraph') checks the paragraph before point, and
  574. inserts two newlines to start a new paragraph.  It prints a message in
  575. the echo area if any mismatch is found.  `M-x validate-TeX-buffer'
  576. checks the entire buffer, paragraph by paragraph.  When it finds a
  577. paragraph that contains a mismatch, it displays point at the beginning
  578. of the paragraph for a few seconds and pushes a mark at that spot. 
  579. Scanning continues until the whole buffer has been checked or until you
  580. type another key. The positions of the last several paragraphs with
  581. mismatches can be found in the mark ring (*note Mark Ring::.).
  582.    Note that square brackets and parentheses are matched in TeX mode,
  583. not just braces.  This is wrong for the purpose of checking TeX syntax.
  584. However, parentheses and square brackets are likely to be used in text
  585. as matching delimiters and it is useful for the various motion commands
  586. and automatic match display to work with them.
  587.    In LaTeX input, `\begin' and `\end' commands must balance. After you
  588. insert a `\begin', use `C-c C-f' (`TeX-close-LaTeX-block') to insert
  589. automatically a matching `\end' (on a new line following the `\begin').
  590.  A blank line is inserted between the two, and point is left there.
  591. File: emacs,  Node: TeX Print,  Prev: TeX Editing,  Up: TeX Mode
  592. TeX Printing Commands
  593. .....................
  594.    You can invoke TeX as an inferior of Emacs on either the entire
  595. contents of the buffer or just a region at a time.  Running TeX in this
  596. way on just one chapter is a good way to see what your changes look
  597. like without taking the time to format the entire file.
  598. `C-c C-r'
  599.      Invoke TeX on the current region, plus the buffer's header
  600.      (`TeX-region').
  601. `C-c C-b'
  602.      Invoke TeX on the entire current buffer (`TeX-buffer').
  603. `C-c C-l'
  604.      Recenter the window showing output from the inferior TeX so that
  605.      the last line can be seen (`TeX-recenter-output-buffer').
  606. `C-c C-k'
  607.      Kill the inferior TeX (`TeX-kill-job').
  608. `C-c C-p'
  609.      Print the output from the last `C-c C-r' or `C-c C-b' command
  610.      (`TeX-print').
  611. `C-c C-q'
  612.      Show the printer queue (`TeX-show-print-queue').
  613.    You can pass the current buffer through an inferior TeX by means of
  614. `C-c C-b' (`TeX-buffer').  The formatted output appears in a file in
  615. `/tmp'; to print it, type `C-c C-p' (`TeX-print'). Afterward use `C-c
  616. C-q' (`TeX-show-print-queue') to view the progress of your output
  617. towards being printed.
  618.    The console output from TeX, including any error messages, appear in
  619. a buffer called `*TeX-shell*'.  If TeX gets an error, you can switch to
  620. this buffer and feed it input (this works as in Shell mode; *note
  621. Interactive Shell::.).  Without switching to this buffer you can scroll
  622. it so that its last line is visible by typing `C-c C-l'.
  623.    Type `C-c C-k' (`TeX-kill-job') to kill the TeX process if you see
  624. that its output is no longer useful.  Using `C-c C-b' or `C-c C-r' also
  625. kills any TeX process still running.
  626.    You can also pass an arbitrary region through an inferior TeX by
  627. typing `C-c C-r' (`TeX-region').  This is tricky, however, because most
  628. files of TeX input contain commands at the beginning to set parameters
  629. and define macros, without which no later part of the file will format
  630. correctly.  To solve this problem, `C-c C-r' allows you to designate a
  631. part of the file as containing essential commands; it is included before
  632. the specified region as part of the input to TeX.  The designated part
  633. of the file is called the "header".
  634.    To indicate the bounds of the header in Plain TeX mode, you insert
  635. two special strings in the file.  Insert `%**start of header' before the
  636. header, and `%**end of header' after it.  Each string must appear
  637. entirely on one line, but there may be other text on the line before or
  638. after.  The lines containing the two strings are included in the header.
  639. If `%**start of header' does not appear within the first 100 lines of
  640. the buffer, `C-c C-r' assumes that there is no header.
  641.    In LaTeX mode, the header begins with `\documentstyle' and ends with
  642. `\begin{document}'.  These are commands that LaTeX requires you to use
  643. in any case, so nothing special needs to be done to identify the header.
  644.    Entering either kind of TeX mode calls with no arguments the value of
  645. the variable `text-mode-hook', if that value exists and is not `nil';
  646. then it does the same with the variable `TeX-mode-hook'. Finally it
  647. does the same with either `plain-TeX-mode-hook' or `LaTeX-mode-hook'.
  648. File: emacs,  Node: Outline Mode,  Prev: TeX Mode,  Up: Text Mode
  649. Outline Mode
  650. ------------
  651.    Outline mode is a major mode much like Text mode but intended for
  652. editing outlines.  It allows you to make parts of the text temporarily
  653. invisible so that you can see just the overall structure of the
  654. outline.  Type `M-x outline-mode' to turn on Outline mode in the
  655. current buffer.
  656.    Entering Outline mode calls with no arguments the value of the
  657. variable `text-mode-hook', if that value exists and is not `nil'; then
  658. it does the same with the variable `outline-mode-hook'.
  659.    When a line is invisible in outline mode, it does not appear on the
  660. screen.  The screen appears exactly as if the invisible line were
  661. deleted, except that an ellipsis (three periods in a row) appears at
  662. the end of the previous visible line (only one ellipsis no matter how
  663. many invisible lines follow).
  664.    All editing commands treat the text of the invisible line as part of
  665. the previous visible line.  For example, `C-n' moves onto the next
  666. visible line.  Killing an entire visible line, including its
  667. terminating newline, really kills all the following invisible lines
  668. along with it; yanking it all back yanks the invisible lines and they
  669. remain invisible.
  670. * Menu:
  671. * Format: Outline Format.      What the text of an outline looks like.
  672. * Motion: Outline Motion.      Special commands for moving through outlines.
  673. * Visibility: Outline Visibility. Commands to control what is visible.
  674. File: emacs,  Node: Outline Format,  Next: Outline Motion,  Prev: Outline Mode,  Up: Outline Mode
  675. Format of Outlines
  676. ..................
  677.    Outline mode assumes that the lines in the buffer are of two types:
  678. "heading lines" and "body lines".  A heading line represents a topic in
  679. the outline.  Heading lines start with one or more stars; the number of
  680. stars determines the depth of the heading in the outline structure. 
  681. Thus, a heading line with one star is a major topic; all the heading
  682. lines with two stars between it and the next one-star heading are its
  683. subtopics; and so on.  Any line that is not a heading line is a body
  684. line.  Body lines belong to the preceding heading line.  Here is an
  685. example:
  686.      * Food
  687.      
  688.      This is the body,
  689.      which says something about the topic of food.
  690.      
  691.      ** Delicious Food
  692.      
  693.      This is the body of the second-level header.
  694.      
  695.      ** Distasteful Food
  696.      
  697.      This could have
  698.      a body too, with
  699.      several lines.
  700.      
  701.      *** Dormitory Food
  702.      
  703.      * Shelter
  704.      
  705.      A second first-level topic with its header line.
  706.    A heading line together with all following body lines is called
  707. collectively an "entry".  A heading line together with all following
  708. deeper heading lines and their body lines is called a "subtree".
  709.    You can customize the criterion for distinguishing heading lines by
  710. setting the variable `outline-regexp'.  Any line whose beginning has a
  711. match for this regexp is considered a heading line. Matches that start
  712. within a line (not at the beginning) do not count. The length of the
  713. matching text determines the level of the heading; longer matches make
  714. a more deeply nested level.  Thus, for example, if a text formatter has
  715. commands `@chapter', `@section' and `@subsection' to divide the
  716. document into chapters and sections, you could make those lines count
  717. as heading lines by setting `outline-regexp' to
  718. `"@chap\\|@\\(sub\\)*section"'. Note the trick: the two words `chapter'
  719. and `section' are equally long, but by defining the regexp to match
  720. only `chap' we ensure that the length of the text matched on a chapter
  721. heading is shorter, so that Outline mode will know that sections are
  722. contained in chapters. This works as long as no other command starts
  723. with `@chap'.
  724.    Outline mode makes a line invisible by changing the newline before it
  725. into an ASCII Control-M (code 015).  Most editing commands that work on
  726. lines treat an invisible line as part of the previous line because,
  727. strictly speaking, it is part of that line, since there is no longer a
  728. newline in between.  When you save the file in Outline mode, Control-M
  729. characters are saved as newlines, so the invisible lines become ordinary
  730. lines in the file.  But saving does not change the visibility status of
  731. a line inside Emacs.
  732. File: emacs,  Node: Outline Motion,  Next: Outline Visibility,  Prev: Outline Format,  Up: Outline Mode
  733. Outline Motion Commands
  734. .......................
  735.    There are some special motion commands in Outline mode that move
  736. backward and forward to heading lines.
  737. `C-c C-n'
  738.      Move point to the next visible heading line
  739.      (`outline-next-visible-heading').
  740. `C-c C-p'
  741.      Move point to the previous visible heading line
  742.      (`outline-previous-visible-heading').
  743. `C-c C-f'
  744.      Move point to the next visible heading line at the same level as
  745.      the one point is on (`outline-forward-same-level').
  746. `C-c C-b'
  747.      Move point to the previous visible heading line at the same level
  748.      (`outline-backward-same-level').
  749. `C-c C-u'
  750.      Move point up to a lower-level (more inclusive) visible heading
  751.      line (`outline-up-heading').
  752.    `C-c C-n' (`next-visible-heading') moves down to the next heading
  753. line.  `C-c C-p' (`previous-visible-heading') moves similarly backward.
  754.  Both accept numeric arguments as repeat counts.  The names emphasize
  755. that invisible headings are skipped, but this is not really a special
  756. feature.  All editing commands that look for lines ignore the invisible
  757. lines automatically.
  758.    More advanced motion commands understand the levels of headings. The
  759. commands `C-c C-f' (`outline-forward-same-level') and `C-c C-b'
  760. (`outline-backward-same-level') move from one heading line to another
  761. visible heading at the same depth in the outline.  `C-c C-u'
  762. (`outline-up-heading') moves backward to another heading that is less
  763. deeply nested.
  764. File: emacs,  Node: Outline Visibility,  Prev: Outline Motion,  Up: Outline Mode
  765. Outline Visibility Commands
  766. ...........................
  767.    The other special commands of outline mode are used to make lines
  768. visible or invisible.  Their names all start with `hide' or `show'.
  769. Most of them fall into pairs of opposites.  They are not undoable;
  770. instead, you can undo right past them.  Making lines visible or
  771. invisible is simply not recorded by the undo mechanism.
  772. `M-x hide-body'
  773.      Make all body lines in the buffer invisible.
  774. `M-x show-all'
  775.      Make all lines in the buffer visible.
  776. `C-c C-h'
  777.      Make everything under this heading invisible, not including this
  778.      heading itself
  779.      (`hide-subtree').
  780. `C-c C-s'
  781.      Make everything under this heading visible, including body,
  782.      subheadings, and their bodies (`show-subtree').
  783. `M-x hide-leaves'
  784.      Make the body of this heading line, and of all its subheadings,
  785.      invisible.
  786. `M-x show-branches'
  787.      Make all subheadings of this heading line, at all levels, visible.
  788. `C-c C-i'
  789.      Make immediate subheadings (one level down) of this heading line
  790.      visible (`show-children').
  791. `M-x hide-entry'
  792.      Make this heading line's body invisible.
  793. `M-x show-entry'
  794.      Make this heading line's body visible.
  795.    Two commands that are exact opposites are `M-x hide-entry' and `M-x
  796. show-entry'.  They are used with point on a heading line, and apply
  797. only to the body lines of that heading.  The subtopics and their bodies
  798. are not affected.
  799.    Two more powerful opposites are `C-c C-h' (`hide-subtree') and `C-c
  800. C-s' (`show-subtree').  Both expect to be used when point is on a
  801. heading line, and both apply to all the lines of that heading's
  802. "subtree": its body, all its subheadings, both direct and indirect, and
  803. all of their bodies.  In other words, the subtree contains everything
  804. following this heading line, up to and not including the next heading of
  805. the same or higher rank.
  806.    Intermediate between a visible subtree and an invisible one is having
  807. all the subheadings visible but none of the body.  There are two
  808. commands for doing this, depending on whether you want to hide the
  809. bodies or make the subheadings visible.  They are `M-x hide-leaves' and
  810. `M-x show-branches'.
  811.    A little weaker than `show-branches' is `C-c C-i' (`show-children').
  812.  It makes just the direct subheadings visible--those one level down. 
  813. Deeper subheadings remain invisible, if they were invisible.
  814.    Two commands have a blanket effect on the whole file.  `M-x
  815. hide-body' makes all body lines invisible, so that you see just the
  816. outline structure. `M-x show-all' makes all lines visible.  These
  817. commands can be thought of as a pair of opposites even though `M-x
  818. show-all' applies to more than just body lines.
  819.    The use of ellipses at the ends of visible lines can be turned off
  820. by setting `selective-display-ellipses' to `nil'.  Then there is no
  821. visible indication of the presence of invisible lines.
  822. File: emacs,  Node: Words,  Next: Sentences,  Prev: Text Mode,  Up: Text
  823. Words
  824. =====
  825.    Emacs has commands for moving over or operating on words.  By
  826. convention, the keys for them are all `Meta-' characters.
  827. `M-f'
  828.      Move forward over a word (`forward-word').
  829. `M-b'
  830.      Move backward over a word (`backward-word').
  831. `M-d'
  832.      Kill up to the end of a word (`kill-word').
  833. `M-DEL'
  834.      Kill back to the beginning of a word (`backward-kill-word').
  835. `M-@'
  836.      Mark the end of the next word (`mark-word').
  837. `M-t'
  838.      Transpose two words;  drag a word forward or backward across other
  839.      words (`transpose-words').
  840.    Notice how these keys form a series that parallels the
  841. character-based `C-f', `C-b', `C-d', `C-t' and DEL.  `M-@' is related
  842. to `C-@', which is an alias for `C-SPC'.
  843.    The commands `Meta-f' (`forward-word') and `Meta-b'
  844. (`backward-word') move forward and backward over words.  They are thus
  845. analogous to `Control-f' and `Control-b', which move over single
  846. characters.  Like their `Control-' analogues, `Meta-f' and `Meta-b'
  847. move several words if given an argument.  `Meta-f' with a negative
  848. argument moves backward, and `Meta-b' with a negative argument moves
  849. forward.  Forward motion stops right after the last letter of the word,
  850. while backward motion stops right before the first letter.
  851.    `Meta-d' (`kill-word') kills the word after point.  To be precise,
  852. it kills everything from point to the place `Meta-f' would move to. 
  853. Thus, if point is in the middle of a word, `Meta-d' kills just the part
  854. after point.  If some punctuation comes between point and the next
  855. word, it is killed along with the word.  (If you wish to kill only the
  856. next word but not the punctuation before it, simply do `Meta-f' to get
  857. the end, and kill the word backwards with `Meta-DEL'.) `Meta-d' takes
  858. arguments just like `Meta-f'.
  859.    `Meta-DEL' (`backward-kill-word') kills the word before point.  It
  860. kills everything from point back to where `Meta-b' would move to.  If
  861. point is after the space in `FOO, BAR', then `FOO, ' is killed.  (If
  862. you wish to kill just `FOO', do `Meta-b Meta-d' instead of `Meta-DEL'.)
  863.    `Meta-t' (`transpose-words') exchanges the word before or containing
  864. point with the following word.  The delimiter characters between the
  865. words do not move.  For example, `FOO, BAR' transposes into `BAR, FOO'
  866. rather than `BAR FOO,'.  *Note Transpose::, for more on transposition
  867. and on arguments to transposition commands.
  868.    To operate on the next N words with an operation which applies
  869. between point and mark, you can either set the mark at point and then
  870. move over the words, or you can use the command `Meta-@' (`mark-word')
  871. which does not move point, but sets the mark where `Meta-f' would move
  872. to.  It can be given arguments just like `Meta-f'.
  873.    The word commands' understanding of syntax is completely controlled
  874. by the syntax table.  Any character can, for example, be declared to be
  875. a word delimiter.  *Note Syntax::.
  876. File: emacs,  Node: Sentences,  Next: Paragraphs,  Prev: Words,  Up: Text
  877. Sentences
  878. =========
  879.    The Emacs commands for manipulating sentences and paragraphs are
  880. mostly on `Meta-' keys, so as to be like the word-handling commands.
  881. `M-a'
  882.      Move back to the beginning of the sentence (`backward-sentence').
  883. `M-e'
  884.      Move forward to the end of the sentence (`forward-sentence').
  885. `M-k'
  886.      Kill forward to the end of the sentence (`kill-sentence').
  887. `C-x DEL'
  888.      Kill back to the beginning of the sentence
  889.      (`backward-kill-sentence').
  890.    The commands `Meta-a' and `Meta-e' (`backward-sentence' and
  891. `forward-sentence') move to the beginning and end of the current
  892. sentence, respectively.  They were chosen to resemble `Control-a' and
  893. `Control-e', which move to the beginning and end of a line.  Unlike
  894. them, `Meta-a' and `Meta-e' if repeated or given numeric arguments move
  895. over successive sentences.  Emacs assumes that the typist's convention
  896. is followed, and thus considers a sentence to end wherever there is a
  897. `.', `?' or `!' followed by the end of a line or two spaces, with any
  898. number of `)', `]', `'', or `"' characters allowed in between.  A
  899. sentence also begins or ends wherever a paragraph begins or ends.
  900.    Neither `M-a' nor `M-e' moves past the newline or spaces beyond the
  901. sentence edge at which it is stopping.
  902.    Just as `C-a' and `C-e' have a kill command, `C-k', to go with them,
  903. so `M-a' and `M-e' have a corresponding kill command `M-k'
  904. (`kill-sentence') which kills from point to the end of the sentence. 
  905. With minus one as an argument it kills back to the beginning of the
  906. sentence.  Larger arguments serve as a repeat count.
  907.    There is a special command, `C-x DEL' (`backward-kill-sentence') for
  908. killing back to the beginning of a sentence, because this is useful
  909. when you change your mind in the middle of composing text.
  910.    The variable `sentence-end' controls recognition of the end of a
  911. sentence.  It is a regexp that matches the last few characters of a
  912. sentence, together with the whitespace following the sentence.  Its
  913. normal value is
  914.      "[.?!][]\"')]*\\($\\|\t\\|  \\)[ \t\n]*"
  915. This example is explained in the section on regexps.  *Note Regexps::.
  916.