aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2011-08-25 12:13:59 -0400
committerChong Yidong2011-08-25 12:13:59 -0400
commitf404f8bc6354c41f96f23ef6cf00c72d00cd798b (patch)
treee2ea191c167056e320aac25213703bf15b76d406
parente0b1591ba7bf3e36524d367261430162fa1fffac (diff)
downloademacs-f404f8bc6354c41f96f23ef6cf00c72d00cd798b.tar.gz
emacs-f404f8bc6354c41f96f23ef6cf00c72d00cd798b.zip
Relocate some additional Emacs manual nodes.
* doc/emacs/display.texi (Narrowing): Move into display chapter. * doc/emacs/picture-xtra.texi (Picture Mode): Group with Editing Binary Files section. Convert from chapter into section. * doc/emacs/text.texi (Two-Column): Move into Text chapter.
-rw-r--r--doc/emacs/ChangeLog7
-rw-r--r--doc/emacs/display.texi68
-rw-r--r--doc/emacs/emacs.texi25
-rw-r--r--doc/emacs/misc.texi170
-rw-r--r--doc/emacs/picture-xtra.texi10
-rw-r--r--doc/emacs/text.texi91
6 files changed, 190 insertions, 181 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 0cdf29d7fca..bf600a42690 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,5 +1,12 @@
12011-08-25 Chong Yidong <cyd@stupidchicken.com> 12011-08-25 Chong Yidong <cyd@stupidchicken.com>
2 2
3 * text.texi (Two-Column): Move into Text chapter.
4
5 * picture-xtra.texi (Picture Mode): Group with Editing Binary
6 Files section. Convert from chapter into section.
7
8 * display.texi (Narrowing): Move into display chapter.
9
3 * sending.texi (Sending Mail): 10 * sending.texi (Sending Mail):
4 * rmail.texi (Rmail): 11 * rmail.texi (Rmail):
5 * misc.texi (Gnus, Document View): 12 * misc.texi (Gnus, Document View):
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index bfbfb355c9c..cc7f70cf574 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -15,6 +15,8 @@ want to see, and how to display it.
15* Scrolling:: Commands to move text up and down in a window. 15* Scrolling:: Commands to move text up and down in a window.
16* Auto Scrolling:: Redisplay scrolls text automatically when needed. 16* Auto Scrolling:: Redisplay scrolls text automatically when needed.
17* Horizontal Scrolling:: Moving text left and right in a window. 17* Horizontal Scrolling:: Moving text left and right in a window.
18* Narrowing:: Restricting display and editing to a portion
19 of the buffer.
18* Follow Mode:: Follow mode lets two windows scroll as one. 20* Follow Mode:: Follow mode lets two windows scroll as one.
19* Faces:: How to change the display style using faces. 21* Faces:: How to change the display style using faces.
20* Standard Faces:: Emacs' predefined faces. 22* Standard Faces:: Emacs' predefined faces.
@@ -300,6 +302,72 @@ a lower bound for automatic horizontal scrolling. Automatic scrolling
300will continue to scroll the window, but never farther to the right 302will continue to scroll the window, but never farther to the right
301than the amount you previously set by @code{scroll-left}. 303than the amount you previously set by @code{scroll-left}.
302 304
305@node Narrowing
306@section Narrowing
307@cindex widening
308@cindex restriction
309@cindex narrowing
310@cindex accessible portion
311
312 @dfn{Narrowing} means focusing in on some portion of the buffer,
313making the rest temporarily inaccessible. The portion which you can
314still get to is called the @dfn{accessible portion}. Canceling the
315narrowing, which makes the entire buffer once again accessible, is
316called @dfn{widening}. The bounds of narrowing in effect in a buffer
317are called the buffer's @dfn{restriction}.
318
319 Narrowing can make it easier to concentrate on a single subroutine or
320paragraph by eliminating clutter. It can also be used to limit the
321range of operation of a replace command or repeating keyboard macro.
322
323@table @kbd
324@item C-x n n
325Narrow down to between point and mark (@code{narrow-to-region}).
326@item C-x n w
327Widen to make the entire buffer accessible again (@code{widen}).
328@item C-x n p
329Narrow down to the current page (@code{narrow-to-page}).
330@item C-x n d
331Narrow down to the current defun (@code{narrow-to-defun}).
332@end table
333
334 When you have narrowed down to a part of the buffer, that part appears
335to be all there is. You can't see the rest, you can't move into it
336(motion commands won't go outside the accessible part), you can't change
337it in any way. However, it is not gone, and if you save the file all
338the inaccessible text will be saved. The word @samp{Narrow} appears in
339the mode line whenever narrowing is in effect.
340
341@kindex C-x n n
342@findex narrow-to-region
343 The primary narrowing command is @kbd{C-x n n} (@code{narrow-to-region}).
344It sets the current buffer's restrictions so that the text in the current
345region remains accessible, but all text before the region or after the
346region is inaccessible. Point and mark do not change.
347
348@kindex C-x n p
349@findex narrow-to-page
350@kindex C-x n d
351@findex narrow-to-defun
352 Alternatively, use @kbd{C-x n p} (@code{narrow-to-page}) to narrow
353down to the current page. @xref{Pages}, for the definition of a page.
354@kbd{C-x n d} (@code{narrow-to-defun}) narrows down to the defun
355containing point (@pxref{Defuns}).
356
357@kindex C-x n w
358@findex widen
359 The way to cancel narrowing is to widen with @kbd{C-x n w}
360(@code{widen}). This makes all text in the buffer accessible again.
361
362 You can get information on what part of the buffer you are narrowed down
363to using the @kbd{C-x =} command. @xref{Position Info}.
364
365 Because narrowing can easily confuse users who do not understand it,
366@code{narrow-to-region} is normally a disabled command. Attempting to use
367this command asks for confirmation and gives you the option of enabling it;
368if you enable the command, confirmation will no longer be required for
369it. @xref{Disabling}.
370
303@node Follow Mode 371@node Follow Mode
304@section Follow Mode 372@section Follow Mode
305@cindex Follow mode 373@cindex Follow mode
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 533c290cea5..1b5ae415982 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -187,16 +187,12 @@ Major Structures of Emacs
187Advanced Features 187Advanced Features
188* Modes:: Major and minor modes alter Emacs' basic behavior. 188* Modes:: Major and minor modes alter Emacs' basic behavior.
189* Indentation:: Editing the white space at the beginnings of lines. 189* Indentation:: Editing the white space at the beginnings of lines.
190* Text:: Commands and modes for editing English. 190* Text:: Commands and modes for editing human languages.
191* Programs:: Commands and modes for editing programs. 191* Programs:: Commands and modes for editing programs.
192* Building:: Compiling, running and debugging programs. 192* Building:: Compiling, running and debugging programs.
193* Maintaining:: Features for maintaining large programs. 193* Maintaining:: Features for maintaining large programs.
194* Abbrevs:: Defining text abbreviations to reduce 194* Abbrevs:: Defining text abbreviations to reduce
195 the number of characters you must type. 195 the number of characters you must type.
196@c AFAICS, the tex stuff generates its own index and does not use this one.
197@ifnottex
198* Picture Mode:: Editing pictures made up of text characters.
199@end ifnottex
200* Dired:: Directory and file manager. 196* Dired:: Directory and file manager.
201* Calendar/Diary:: Calendar and diary facilities. 197* Calendar/Diary:: Calendar and diary facilities.
202* Document View:: Viewing PDF, PS and DVI files. 198* Document View:: Viewing PDF, PS and DVI files.
@@ -207,15 +203,12 @@ Advanced Features
207* Emacs Server:: Using Emacs as an editing server. 203* Emacs Server:: Using Emacs as an editing server.
208* Printing:: Printing hardcopies of buffers or regions. 204* Printing:: Printing hardcopies of buffers or regions.
209* Sorting:: Sorting lines, paragraphs or pages within Emacs. 205* Sorting:: Sorting lines, paragraphs or pages within Emacs.
210* Narrowing:: Restricting display and editing to a portion 206@ifnottex
211 of the buffer. 207* Picture Mode:: Editing pictures made up of text characters.
212* Two-Column:: Splitting apart columns to edit them 208@end ifnottex
213 in side-by-side windows. 209* Editing Binary Files:: Editing binary files with Hexl mode.
214* Editing Binary Files::Using Hexl mode to edit binary files.
215* Saving Emacs Sessions:: Saving Emacs state from one session to the next. 210* Saving Emacs Sessions:: Saving Emacs state from one session to the next.
216* Recursive Edit:: A command can allow you to do editing 211* Recursive Edit:: Performing edits while "within another command".
217 "within the command". This is called a
218 "recursive editing level".
219* Emulation:: Emulating some other editors with Emacs. 212* Emulation:: Emulating some other editors with Emacs.
220* Hyperlinking:: Following links in buffers. 213* Hyperlinking:: Following links in buffers.
221* Amusements:: Various games and hacks. 214* Amusements:: Various games and hacks.
@@ -349,6 +342,8 @@ Controlling the Display
349* Scrolling:: Commands to move text up and down in a window. 342* Scrolling:: Commands to move text up and down in a window.
350* Auto Scrolling:: Redisplay scrolls text automatically when needed. 343* Auto Scrolling:: Redisplay scrolls text automatically when needed.
351* Horizontal Scrolling:: Moving text left and right in a window. 344* Horizontal Scrolling:: Moving text left and right in a window.
345* Narrowing:: Restricting display and editing to a portion
346 of the buffer.
352* Follow Mode:: Follow mode lets two windows scroll as one. 347* Follow Mode:: Follow mode lets two windows scroll as one.
353* Faces:: How to change the display style using faces. 348* Faces:: How to change the display style using faces.
354* Standard Faces:: Emacs' predefined faces. 349* Standard Faces:: Emacs' predefined faces.
@@ -576,6 +571,7 @@ Commands for Human Languages
576* Nroff Mode:: Editing input to the formatter nroff. 571* Nroff Mode:: Editing input to the formatter nroff.
577* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 572* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
578* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 573* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
574* Two-Column:: Splitting text columns into separate windows.
579 575
580Filling Text 576Filling Text
581 577
@@ -1493,9 +1489,6 @@ Lisp programming.
1493@c Includes vc1-xtra, emerge-xtra. 1489@c Includes vc1-xtra, emerge-xtra.
1494@include maintaining.texi 1490@include maintaining.texi
1495@include abbrevs.texi 1491@include abbrevs.texi
1496@ifnottex
1497@include picture-xtra.texi
1498@end ifnottex
1499@include sending.texi 1492@include sending.texi
1500@include rmail.texi 1493@include rmail.texi
1501@c Includes dired-xtra. 1494@c Includes dired-xtra.
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 16b5b0bd6ee..d49c5c034d0 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -10,9 +10,9 @@ else: viewing ``document files'', reading netnews, running shell
10commands and shell subprocesses, using a single shared Emacs for 10commands and shell subprocesses, using a single shared Emacs for
11utilities that expect to run an editor as a subprocess, printing 11utilities that expect to run an editor as a subprocess, printing
12hardcopy, sorting text, narrowing display to part of the buffer, 12hardcopy, sorting text, narrowing display to part of the buffer,
13editing double-column files and binary files, saving an Emacs session 13editing binary files, saving an Emacs session for later resumption,
14for later resumption, following hyperlinks, browsing images, emulating 14following hyperlinks, browsing images, emulating other editors, and
15other editors, and various diversions and amusements. 15various diversions and amusements.
16 16
17@end iftex 17@end iftex
18 18
@@ -166,7 +166,7 @@ look at.
166(@code{doc-view-set-slice}); then enter the top left pixel position 166(@code{doc-view-set-slice}); then enter the top left pixel position
167and the slice's width and height. 167and the slice's width and height.
168@c ??? how does this work? 168@c ??? how does this work?
169 169
170 A more convenient graphical way to specify the slice is with @kbd{s 170 A more convenient graphical way to specify the slice is with @kbd{s
171m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to 171m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to
172select the slice. 172select the slice.
@@ -1999,7 +1999,7 @@ to print, you start the print job using the @samp{Print} button (click
1999further information on the various options, use the @samp{Interface 1999further information on the various options, use the @samp{Interface
2000Help} button. 2000Help} button.
2001 2001
2002@node Sorting, Narrowing, Printing, Top 2002@node Sorting
2003@section Sorting Text 2003@section Sorting Text
2004@cindex sorting 2004@cindex sorting
2005 2005
@@ -2134,163 +2134,13 @@ rectangle moves along with the text inside the rectangle.
2134 Many of the sort commands ignore case differences when comparing, if 2134 Many of the sort commands ignore case differences when comparing, if
2135@code{sort-fold-case} is non-@code{nil}. 2135@code{sort-fold-case} is non-@code{nil}.
2136 2136
2137@node Narrowing, Two-Column, Sorting, Top 2137@c Picture Mode documentation
2138@section Narrowing 2138@ifnottex
2139@cindex widening 2139@include picture-xtra.texi
2140@cindex restriction 2140@end ifnottex
2141@cindex narrowing
2142@cindex accessible portion
2143
2144 @dfn{Narrowing} means focusing in on some portion of the buffer,
2145making the rest temporarily inaccessible. The portion which you can
2146still get to is called the @dfn{accessible portion}. Canceling the
2147narrowing, which makes the entire buffer once again accessible, is
2148called @dfn{widening}. The bounds of narrowing in effect in a buffer
2149are called the buffer's @dfn{restriction}.
2150
2151 Narrowing can make it easier to concentrate on a single subroutine or
2152paragraph by eliminating clutter. It can also be used to limit the
2153range of operation of a replace command or repeating keyboard macro.
2154
2155@table @kbd
2156@item C-x n n
2157Narrow down to between point and mark (@code{narrow-to-region}).
2158@item C-x n w
2159Widen to make the entire buffer accessible again (@code{widen}).
2160@item C-x n p
2161Narrow down to the current page (@code{narrow-to-page}).
2162@item C-x n d
2163Narrow down to the current defun (@code{narrow-to-defun}).
2164@end table
2165
2166 When you have narrowed down to a part of the buffer, that part appears
2167to be all there is. You can't see the rest, you can't move into it
2168(motion commands won't go outside the accessible part), you can't change
2169it in any way. However, it is not gone, and if you save the file all
2170the inaccessible text will be saved. The word @samp{Narrow} appears in
2171the mode line whenever narrowing is in effect.
2172
2173@kindex C-x n n
2174@findex narrow-to-region
2175 The primary narrowing command is @kbd{C-x n n} (@code{narrow-to-region}).
2176It sets the current buffer's restrictions so that the text in the current
2177region remains accessible, but all text before the region or after the
2178region is inaccessible. Point and mark do not change.
2179
2180@kindex C-x n p
2181@findex narrow-to-page
2182@kindex C-x n d
2183@findex narrow-to-defun
2184 Alternatively, use @kbd{C-x n p} (@code{narrow-to-page}) to narrow
2185down to the current page. @xref{Pages}, for the definition of a page.
2186@kbd{C-x n d} (@code{narrow-to-defun}) narrows down to the defun
2187containing point (@pxref{Defuns}).
2188
2189@kindex C-x n w
2190@findex widen
2191 The way to cancel narrowing is to widen with @kbd{C-x n w}
2192(@code{widen}). This makes all text in the buffer accessible again.
2193
2194 You can get information on what part of the buffer you are narrowed down
2195to using the @kbd{C-x =} command. @xref{Position Info}.
2196
2197 Because narrowing can easily confuse users who do not understand it,
2198@code{narrow-to-region} is normally a disabled command. Attempting to use
2199this command asks for confirmation and gives you the option of enabling it;
2200if you enable the command, confirmation will no longer be required for
2201it. @xref{Disabling}.
2202
2203@node Two-Column, Editing Binary Files, Narrowing, Top
2204@section Two-Column Editing
2205@cindex two-column editing
2206@cindex splitting columns
2207@cindex columns, splitting
2208
2209 Two-column mode lets you conveniently edit two side-by-side columns of
2210text. It uses two side-by-side windows, each showing its own
2211buffer.
2212
2213 There are three ways to enter two-column mode:
2214 2141
2215@table @asis
2216@item @kbd{@key{F2} 2} or @kbd{C-x 6 2}
2217@kindex F2 2
2218@kindex C-x 6 2
2219@findex 2C-two-columns
2220Enter two-column mode with the current buffer on the left, and on the
2221right, a buffer whose name is based on the current buffer's name
2222(@code{2C-two-columns}). If the right-hand buffer doesn't already
2223exist, it starts out empty; the current buffer's contents are not
2224changed.
2225
2226This command is appropriate when the current buffer is empty or contains
2227just one column and you want to add another column.
2228
2229@item @kbd{@key{F2} s} or @kbd{C-x 6 s}
2230@kindex F2 s
2231@kindex C-x 6 s
2232@findex 2C-split
2233Split the current buffer, which contains two-column text, into two
2234buffers, and display them side by side (@code{2C-split}). The current
2235buffer becomes the left-hand buffer, but the text in the right-hand
2236column is moved into the right-hand buffer. The current column
2237specifies the split point. Splitting starts with the current line and
2238continues to the end of the buffer.
2239
2240This command is appropriate when you have a buffer that already contains
2241two-column text, and you wish to separate the columns temporarily.
2242
2243@item @kbd{@key{F2} b @var{buffer} @key{RET}}
2244@itemx @kbd{C-x 6 b @var{buffer} @key{RET}}
2245@kindex F2 b
2246@kindex C-x 6 b
2247@findex 2C-associate-buffer
2248Enter two-column mode using the current buffer as the left-hand buffer,
2249and using buffer @var{buffer} as the right-hand buffer
2250(@code{2C-associate-buffer}).
2251@end table
2252 2142
2253 @kbd{@key{F2} s} or @kbd{C-x 6 s} looks for a column separator, which 2143@node Editing Binary Files
2254is a string that appears on each line between the two columns. You can
2255specify the width of the separator with a numeric argument to
2256@kbd{@key{F2} s}; that many characters, before point, constitute the
2257separator string. By default, the width is 1, so the column separator
2258is the character before point.
2259
2260 When a line has the separator at the proper place, @kbd{@key{F2} s}
2261puts the text after the separator into the right-hand buffer, and
2262deletes the separator. Lines that don't have the column separator at
2263the proper place remain unsplit; they stay in the left-hand buffer, and
2264the right-hand buffer gets an empty line to correspond. (This is the
2265way to write a line that ``spans both columns while in two-column
2266mode'': write it in the left-hand buffer, and put an empty line in the
2267right-hand buffer.)
2268
2269@kindex F2 RET
2270@kindex C-x 6 RET
2271@findex 2C-newline
2272 The command @kbd{C-x 6 @key{RET}} or @kbd{@key{F2} @key{RET}}
2273(@code{2C-newline}) inserts a newline in each of the two buffers at
2274corresponding positions. This is the easiest way to add a new line to
2275the two-column text while editing it in split buffers.
2276
2277@kindex F2 1
2278@kindex C-x 6 1
2279@findex 2C-merge
2280 When you have edited both buffers as you wish, merge them with
2281@kbd{@key{F2} 1} or @kbd{C-x 6 1} (@code{2C-merge}). This copies the
2282text from the right-hand buffer as a second column in the other buffer.
2283To go back to two-column editing, use @kbd{@key{F2} s}.
2284
2285@kindex F2 d
2286@kindex C-x 6 d
2287@findex 2C-dissociate
2288 Use @kbd{@key{F2} d} or @kbd{C-x 6 d} to dissociate the two buffers,
2289leaving each as it stands (@code{2C-dissociate}). If the other buffer,
2290the one not current when you type @kbd{@key{F2} d}, is empty,
2291@kbd{@key{F2} d} kills it.
2292
2293@node Editing Binary Files, Saving Emacs Sessions, Two-Column, Top
2294@section Editing Binary Files 2144@section Editing Binary Files
2295 2145
2296@cindex Hexl mode 2146@cindex Hexl mode
diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
index 0dcfc7a9627..43a2dbc4704 100644
--- a/doc/emacs/picture-xtra.texi
+++ b/doc/emacs/picture-xtra.texi
@@ -5,7 +5,7 @@
5@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
6@c printed version) or in the main Emacs manual (for the on-line version). 6@c printed version) or in the main Emacs manual (for the on-line version).
7@node Picture Mode 7@node Picture Mode
8@chapter Editing Pictures 8@section Editing Pictures
9@cindex pictures 9@cindex pictures
10@cindex making pictures out of text characters 10@cindex making pictures out of text characters
11@findex picture-mode 11@findex picture-mode
@@ -59,7 +59,7 @@ Additional extensions to Picture mode can be found in
59@end menu 59@end menu
60 60
61@node Basic Picture 61@node Basic Picture
62@section Basic Editing in Picture Mode 62@subsection Basic Editing in Picture Mode
63 63
64@findex picture-forward-column 64@findex picture-forward-column
65@findex picture-backward-column 65@findex picture-backward-column
@@ -124,7 +124,7 @@ modes), or one of the picture rectangle commands (@pxref{Rectangles in
124Picture}). 124Picture}).
125 125
126@node Insert in Picture 126@node Insert in Picture
127@section Controlling Motion after Insert 127@subsection Controlling Motion after Insert
128 128
129@findex picture-movement-up 129@findex picture-movement-up
130@findex picture-movement-down 130@findex picture-movement-down
@@ -188,7 +188,7 @@ same direction as motion after ``insertion'' currently does, while @kbd{C-c
188C-b} (@code{picture-motion-reverse}) moves in the opposite direction. 188C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
189 189
190@node Tabs in Picture 190@node Tabs in Picture
191@section Picture Mode Tabs 191@subsection Picture Mode Tabs
192 192
193@kindex M-TAB @r{(Picture mode)} 193@kindex M-TAB @r{(Picture mode)}
194@findex picture-tab-search 194@findex picture-tab-search
@@ -228,7 +228,7 @@ up the picture. You can do this by setting the variable
228@code{indent-tabs-mode} to @code{nil}. 228@code{indent-tabs-mode} to @code{nil}.
229 229
230@node Rectangles in Picture 230@node Rectangles in Picture
231@section Picture Mode Rectangle Commands 231@subsection Picture Mode Rectangle Commands
232@cindex rectangles and Picture mode 232@cindex rectangles and Picture mode
233@cindex Picture mode and rectangles 233@cindex Picture mode and rectangles
234 234
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index e3f5c05d8da..0b0e4867ae5 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -70,6 +70,7 @@ for editing such pictures.
70* Nroff Mode:: Editing input to the formatter nroff. 70* Nroff Mode:: Editing input to the formatter nroff.
71* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 71* Formatted Text:: Editing formatted text directly in WYSIWYG fashion.
72* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 72* Text Based Tables:: Editing text-based tables in WYSIWYG fashion.
73* Two-Column:: Splitting text columns into separate windows.
73@end menu 74@end menu
74 75
75@node Words 76@node Words
@@ -2837,3 +2838,93 @@ then inserts the generated table in the proper syntax into the
2837destination buffer. The default destination buffer is 2838destination buffer. The default destination buffer is
2838@code{table.@var{lang}}, where @var{lang} is the language you 2839@code{table.@var{lang}}, where @var{lang} is the language you
2839specified. 2840specified.
2841
2842@node Two-Column
2843@section Two-Column Editing
2844@cindex two-column editing
2845@cindex splitting columns
2846@cindex columns, splitting
2847
2848 Two-column mode lets you conveniently edit two side-by-side columns of
2849text. It uses two side-by-side windows, each showing its own
2850buffer.
2851
2852 There are three ways to enter two-column mode:
2853
2854@table @asis
2855@item @kbd{@key{F2} 2} or @kbd{C-x 6 2}
2856@kindex F2 2
2857@kindex C-x 6 2
2858@findex 2C-two-columns
2859Enter two-column mode with the current buffer on the left, and on the
2860right, a buffer whose name is based on the current buffer's name
2861(@code{2C-two-columns}). If the right-hand buffer doesn't already
2862exist, it starts out empty; the current buffer's contents are not
2863changed.
2864
2865This command is appropriate when the current buffer is empty or contains
2866just one column and you want to add another column.
2867
2868@item @kbd{@key{F2} s} or @kbd{C-x 6 s}
2869@kindex F2 s
2870@kindex C-x 6 s
2871@findex 2C-split
2872Split the current buffer, which contains two-column text, into two
2873buffers, and display them side by side (@code{2C-split}). The current
2874buffer becomes the left-hand buffer, but the text in the right-hand
2875column is moved into the right-hand buffer. The current column
2876specifies the split point. Splitting starts with the current line and
2877continues to the end of the buffer.
2878
2879This command is appropriate when you have a buffer that already contains
2880two-column text, and you wish to separate the columns temporarily.
2881
2882@item @kbd{@key{F2} b @var{buffer} @key{RET}}
2883@itemx @kbd{C-x 6 b @var{buffer} @key{RET}}
2884@kindex F2 b
2885@kindex C-x 6 b
2886@findex 2C-associate-buffer
2887Enter two-column mode using the current buffer as the left-hand buffer,
2888and using buffer @var{buffer} as the right-hand buffer
2889(@code{2C-associate-buffer}).
2890@end table
2891
2892 @kbd{@key{F2} s} or @kbd{C-x 6 s} looks for a column separator, which
2893is a string that appears on each line between the two columns. You can
2894specify the width of the separator with a numeric argument to
2895@kbd{@key{F2} s}; that many characters, before point, constitute the
2896separator string. By default, the width is 1, so the column separator
2897is the character before point.
2898
2899 When a line has the separator at the proper place, @kbd{@key{F2} s}
2900puts the text after the separator into the right-hand buffer, and
2901deletes the separator. Lines that don't have the column separator at
2902the proper place remain unsplit; they stay in the left-hand buffer, and
2903the right-hand buffer gets an empty line to correspond. (This is the
2904way to write a line that ``spans both columns while in two-column
2905mode'': write it in the left-hand buffer, and put an empty line in the
2906right-hand buffer.)
2907
2908@kindex F2 RET
2909@kindex C-x 6 RET
2910@findex 2C-newline
2911 The command @kbd{C-x 6 @key{RET}} or @kbd{@key{F2} @key{RET}}
2912(@code{2C-newline}) inserts a newline in each of the two buffers at
2913corresponding positions. This is the easiest way to add a new line to
2914the two-column text while editing it in split buffers.
2915
2916@kindex F2 1
2917@kindex C-x 6 1
2918@findex 2C-merge
2919 When you have edited both buffers as you wish, merge them with
2920@kbd{@key{F2} 1} or @kbd{C-x 6 1} (@code{2C-merge}). This copies the
2921text from the right-hand buffer as a second column in the other buffer.
2922To go back to two-column editing, use @kbd{@key{F2} s}.
2923
2924@kindex F2 d
2925@kindex C-x 6 d
2926@findex 2C-dissociate
2927 Use @kbd{@key{F2} d} or @kbd{C-x 6 d} to dissociate the two buffers,
2928leaving each as it stands (@code{2C-dissociate}). If the other buffer,
2929the one not current when you type @kbd{@key{F2} d}, is empty,
2930@kbd{@key{F2} d} kills it.