annotate man/picture.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents ac7e9e5e2ccb
children 23f63206a867
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
Dave Love <fx@gnu.org>
parents:
diff changeset
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 1997 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
3 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @node Picture, Sending Mail, Abbrevs, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @chapter Editing Pictures
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @cindex pictures
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex making pictures out of text characters
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @findex edit-picture
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 To edit a picture made out of text characters (for example, a picture
Dave Love <fx@gnu.org>
parents:
diff changeset
11 of the division of a register into fields, as a comment in a program),
Dave Love <fx@gnu.org>
parents:
diff changeset
12 use the command @kbd{M-x edit-picture} to enter Picture mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
13
Dave Love <fx@gnu.org>
parents:
diff changeset
14 In Picture mode, editing is based on the @dfn{quarter-plane} model of
Dave Love <fx@gnu.org>
parents:
diff changeset
15 text, according to which the text characters lie studded on an area that
Dave Love <fx@gnu.org>
parents:
diff changeset
16 stretches infinitely far to the right and downward. The concept of the end
Dave Love <fx@gnu.org>
parents:
diff changeset
17 of a line does not exist in this model; the most you can say is where the
Dave Love <fx@gnu.org>
parents:
diff changeset
18 last nonblank character on the line is found.
Dave Love <fx@gnu.org>
parents:
diff changeset
19
Dave Love <fx@gnu.org>
parents:
diff changeset
20 Of course, Emacs really always considers text as a sequence of
Dave Love <fx@gnu.org>
parents:
diff changeset
21 characters, and lines really do have ends. But Picture mode replaces
Dave Love <fx@gnu.org>
parents:
diff changeset
22 the most frequently-used commands with variants that simulate the
Dave Love <fx@gnu.org>
parents:
diff changeset
23 quarter-plane model of text. They do this by inserting spaces or by
Dave Love <fx@gnu.org>
parents:
diff changeset
24 converting tabs to spaces.
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 Most of the basic editing commands of Emacs are redefined by Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
27 to do essentially the same thing but in a quarter-plane way. In addition,
Dave Love <fx@gnu.org>
parents:
diff changeset
28 Picture mode defines various keys starting with the @kbd{C-c} prefix to
Dave Love <fx@gnu.org>
parents:
diff changeset
29 run special picture editing commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
30
Dave Love <fx@gnu.org>
parents:
diff changeset
31 One of these keys, @kbd{C-c C-c}, is pretty important. Often a
Dave Love <fx@gnu.org>
parents:
diff changeset
32 picture is part of a larger file that is usually edited in some other
Dave Love <fx@gnu.org>
parents:
diff changeset
33 major mode. @kbd{M-x edit-picture} records the name of the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
34 major mode so you can use the @kbd{C-c C-c} command
Dave Love <fx@gnu.org>
parents:
diff changeset
35 (@code{picture-mode-exit}) later to go back to that mode. @kbd{C-c C-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
36 also deletes spaces from the ends of lines, unless given a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
37 argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
38
Dave Love <fx@gnu.org>
parents:
diff changeset
39 The special commands of Picture mode all work in other modes (provided
Dave Love <fx@gnu.org>
parents:
diff changeset
40 the @file{picture} library is loaded), but are not bound to keys except
Dave Love <fx@gnu.org>
parents:
diff changeset
41 in Picture mode. The descriptions below talk of moving ``one column''
Dave Love <fx@gnu.org>
parents:
diff changeset
42 and so on, but all the picture mode commands handle numeric arguments as
Dave Love <fx@gnu.org>
parents:
diff changeset
43 their normal equivalents do.
Dave Love <fx@gnu.org>
parents:
diff changeset
44
Dave Love <fx@gnu.org>
parents:
diff changeset
45 @vindex picture-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
46 Turning on Picture mode runs the hook @code{picture-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
47 (@pxref{Hooks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
48
Dave Love <fx@gnu.org>
parents:
diff changeset
49 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
50 * Basic Picture:: Basic concepts and simple commands of Picture Mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
51 * Insert in Picture:: Controlling direction of cursor motion
Dave Love <fx@gnu.org>
parents:
diff changeset
52 after "self-inserting" characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
53 * Tabs in Picture:: Various features for tab stops and indentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
54 * Rectangles in Picture:: Clearing and superimposing rectangles.
Dave Love <fx@gnu.org>
parents:
diff changeset
55 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 @node Basic Picture, Insert in Picture, Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
58 @section Basic Editing in Picture Mode
Dave Love <fx@gnu.org>
parents:
diff changeset
59
Dave Love <fx@gnu.org>
parents:
diff changeset
60 @findex picture-forward-column
Dave Love <fx@gnu.org>
parents:
diff changeset
61 @findex picture-backward-column
Dave Love <fx@gnu.org>
parents:
diff changeset
62 @findex picture-move-down
Dave Love <fx@gnu.org>
parents:
diff changeset
63 @findex picture-move-up
Dave Love <fx@gnu.org>
parents:
diff changeset
64 @cindex editing in Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
65
Dave Love <fx@gnu.org>
parents:
diff changeset
66 Most keys do the same thing in Picture mode that they usually do, but
Dave Love <fx@gnu.org>
parents:
diff changeset
67 do it in a quarter-plane style. For example, @kbd{C-f} is rebound to
Dave Love <fx@gnu.org>
parents:
diff changeset
68 run @code{picture-forward-column}, a command which moves point one
Dave Love <fx@gnu.org>
parents:
diff changeset
69 column to the right, inserting a space if necessary so that the actual
Dave Love <fx@gnu.org>
parents:
diff changeset
70 end of the line makes no difference. @kbd{C-b} is rebound to run
Dave Love <fx@gnu.org>
parents:
diff changeset
71 @code{picture-backward-column}, which always moves point left one
Dave Love <fx@gnu.org>
parents:
diff changeset
72 column, converting a tab to multiple spaces if necessary. @kbd{C-n} and
Dave Love <fx@gnu.org>
parents:
diff changeset
73 @kbd{C-p} are rebound to run @code{picture-move-down} and
Dave Love <fx@gnu.org>
parents:
diff changeset
74 @code{picture-move-up}, which can either insert spaces or convert tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
75 as necessary to make sure that point stays in exactly the same column.
Dave Love <fx@gnu.org>
parents:
diff changeset
76 @kbd{C-e} runs @code{picture-end-of-line}, which moves to after the last
Dave Love <fx@gnu.org>
parents:
diff changeset
77 nonblank character on the line. There is no need to change @kbd{C-a},
Dave Love <fx@gnu.org>
parents:
diff changeset
78 as the choice of screen model does not affect beginnings of
Dave Love <fx@gnu.org>
parents:
diff changeset
79 lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
80
Dave Love <fx@gnu.org>
parents:
diff changeset
81 @findex picture-newline
Dave Love <fx@gnu.org>
parents:
diff changeset
82 Insertion of text is adapted to the quarter-plane screen model through
Dave Love <fx@gnu.org>
parents:
diff changeset
83 the use of Overwrite mode (@pxref{Minor Modes}). Self-inserting characters
Dave Love <fx@gnu.org>
parents:
diff changeset
84 replace existing text, column by column, rather than pushing existing text
Dave Love <fx@gnu.org>
parents:
diff changeset
85 to the right. @key{RET} runs @code{picture-newline}, which just moves to
Dave Love <fx@gnu.org>
parents:
diff changeset
86 the beginning of the following line so that new text will replace that
Dave Love <fx@gnu.org>
parents:
diff changeset
87 line.
Dave Love <fx@gnu.org>
parents:
diff changeset
88
Dave Love <fx@gnu.org>
parents:
diff changeset
89 @findex picture-backward-clear-column
Dave Love <fx@gnu.org>
parents:
diff changeset
90 @findex picture-clear-column
Dave Love <fx@gnu.org>
parents:
diff changeset
91 @findex picture-clear-line
Dave Love <fx@gnu.org>
parents:
diff changeset
92 Picture mode provides erasure instead of deletion and killing of
Dave Love <fx@gnu.org>
parents:
diff changeset
93 text. @key{DEL} (@code{picture-backward-clear-column}) replaces the
Dave Love <fx@gnu.org>
parents:
diff changeset
94 preceding character with a space rather than removing it; this moves
Dave Love <fx@gnu.org>
parents:
diff changeset
95 point backwards. @kbd{C-d} (@code{picture-clear-column}) replaces the
Dave Love <fx@gnu.org>
parents:
diff changeset
96 next character or characters with spaces, but does not move point. (If
Dave Love <fx@gnu.org>
parents:
diff changeset
97 you want to clear characters to spaces and move forward over them, use
Dave Love <fx@gnu.org>
parents:
diff changeset
98 @key{SPC}.) @kbd{C-k} (@code{picture-clear-line}) really kills the
Dave Love <fx@gnu.org>
parents:
diff changeset
99 contents of lines, but does not delete the newlines from the
Dave Love <fx@gnu.org>
parents:
diff changeset
100 buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
101
Dave Love <fx@gnu.org>
parents:
diff changeset
102 @findex picture-open-line
Dave Love <fx@gnu.org>
parents:
diff changeset
103 To do actual insertion, you must use special commands. @kbd{C-o}
Dave Love <fx@gnu.org>
parents:
diff changeset
104 (@code{picture-open-line}) creates a blank line after the current line;
Dave Love <fx@gnu.org>
parents:
diff changeset
105 it never splits a line. @kbd{C-M-o} (@code{split-line}) makes sense in
Dave Love <fx@gnu.org>
parents:
diff changeset
106 Picture mode, so it is not changed. @kbd{C-j}
Dave Love <fx@gnu.org>
parents:
diff changeset
107 (@code{picture-duplicate-line}) inserts below the current line another
Dave Love <fx@gnu.org>
parents:
diff changeset
108 line with the same contents.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
109
Dave Love <fx@gnu.org>
parents:
diff changeset
110 @kindex C-c C-d @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
111 To do actual deletion in Picture mode, use @kbd{C-w}, @kbd{C-c C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
112 (which is defined as @code{delete-char}, as @kbd{C-d} is in other
Dave Love <fx@gnu.org>
parents:
diff changeset
113 modes), or one of the picture rectangle commands (@pxref{Rectangles in
Dave Love <fx@gnu.org>
parents:
diff changeset
114 Picture}).
Dave Love <fx@gnu.org>
parents:
diff changeset
115
Dave Love <fx@gnu.org>
parents:
diff changeset
116 @node Insert in Picture, Tabs in Picture, Basic Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
117 @section Controlling Motion after Insert
Dave Love <fx@gnu.org>
parents:
diff changeset
118
Dave Love <fx@gnu.org>
parents:
diff changeset
119 @findex picture-movement-up
Dave Love <fx@gnu.org>
parents:
diff changeset
120 @findex picture-movement-down
Dave Love <fx@gnu.org>
parents:
diff changeset
121 @findex picture-movement-left
Dave Love <fx@gnu.org>
parents:
diff changeset
122 @findex picture-movement-right
Dave Love <fx@gnu.org>
parents:
diff changeset
123 @findex picture-movement-nw
Dave Love <fx@gnu.org>
parents:
diff changeset
124 @findex picture-movement-ne
Dave Love <fx@gnu.org>
parents:
diff changeset
125 @findex picture-movement-sw
Dave Love <fx@gnu.org>
parents:
diff changeset
126 @findex picture-movement-se
Dave Love <fx@gnu.org>
parents:
diff changeset
127 @kindex C-c < @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
128 @kindex C-c > @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
129 @kindex C-c ^ @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
130 @kindex C-c . @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
131 @kindex C-c ` @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
132 @kindex C-c ' @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
133 @kindex C-c / @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
134 @kindex C-c \ @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
135 Since ``self-inserting'' characters in Picture mode overwrite and move
Dave Love <fx@gnu.org>
parents:
diff changeset
136 point, there is no essential restriction on how point should be moved.
Dave Love <fx@gnu.org>
parents:
diff changeset
137 Normally point moves right, but you can specify any of the eight
Dave Love <fx@gnu.org>
parents:
diff changeset
138 orthogonal or diagonal directions for motion after a ``self-inserting''
Dave Love <fx@gnu.org>
parents:
diff changeset
139 character. This is useful for drawing lines in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
140
Dave Love <fx@gnu.org>
parents:
diff changeset
141 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
142 @item C-c <
Dave Love <fx@gnu.org>
parents:
diff changeset
143 Move left after insertion (@code{picture-movement-left}).
Dave Love <fx@gnu.org>
parents:
diff changeset
144 @item C-c >
Dave Love <fx@gnu.org>
parents:
diff changeset
145 Move right after insertion (@code{picture-movement-right}).
Dave Love <fx@gnu.org>
parents:
diff changeset
146 @item C-c ^
Dave Love <fx@gnu.org>
parents:
diff changeset
147 Move up after insertion (@code{picture-movement-up}).
Dave Love <fx@gnu.org>
parents:
diff changeset
148 @item C-c .
Dave Love <fx@gnu.org>
parents:
diff changeset
149 Move down after insertion (@code{picture-movement-down}).
Dave Love <fx@gnu.org>
parents:
diff changeset
150 @item C-c `
Dave Love <fx@gnu.org>
parents:
diff changeset
151 Move up and left (``northwest'') after insertion (@code{picture-movement-nw}).
Dave Love <fx@gnu.org>
parents:
diff changeset
152 @item C-c '
Dave Love <fx@gnu.org>
parents:
diff changeset
153 Move up and right (``northeast'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
154 (@code{picture-movement-ne}).
Dave Love <fx@gnu.org>
parents:
diff changeset
155 @item C-c /
Dave Love <fx@gnu.org>
parents:
diff changeset
156 Move down and left (``southwest'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
157 @*(@code{picture-movement-sw}).
Dave Love <fx@gnu.org>
parents:
diff changeset
158 @item C-c \
Dave Love <fx@gnu.org>
parents:
diff changeset
159 Move down and right (``southeast'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
160 @*(@code{picture-movement-se}).
Dave Love <fx@gnu.org>
parents:
diff changeset
161 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
162
Dave Love <fx@gnu.org>
parents:
diff changeset
163 @kindex C-c C-f @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @kindex C-c C-b @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
165 @findex picture-motion
Dave Love <fx@gnu.org>
parents:
diff changeset
166 @findex picture-motion-reverse
Dave Love <fx@gnu.org>
parents:
diff changeset
167 Two motion commands move based on the current Picture insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
168 direction. The command @kbd{C-c C-f} (@code{picture-motion}) moves in the
Dave Love <fx@gnu.org>
parents:
diff changeset
169 same direction as motion after ``insertion'' currently does, while @kbd{C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
170 C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
Dave Love <fx@gnu.org>
parents:
diff changeset
171
Dave Love <fx@gnu.org>
parents:
diff changeset
172 @node Tabs in Picture, Rectangles in Picture, Insert in Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
173 @section Picture Mode Tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
174
Dave Love <fx@gnu.org>
parents:
diff changeset
175 @kindex M-TAB @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
176 @findex picture-tab-search
Dave Love <fx@gnu.org>
parents:
diff changeset
177 @vindex picture-tab-chars
Dave Love <fx@gnu.org>
parents:
diff changeset
178 Two kinds of tab-like action are provided in Picture mode. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
179 @kbd{M-@key{TAB}} (@code{picture-tab-search}) for context-based tabbing.
Dave Love <fx@gnu.org>
parents:
diff changeset
180 With no argument, it moves to a point underneath the next
Dave Love <fx@gnu.org>
parents:
diff changeset
181 ``interesting'' character that follows whitespace in the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
182 nonblank line. ``Next'' here means ``appearing at a horizontal position
Dave Love <fx@gnu.org>
parents:
diff changeset
183 greater than the one point starts out at.'' With an argument, as in
Dave Love <fx@gnu.org>
parents:
diff changeset
184 @kbd{C-u M-@key{TAB}}, this command moves to the next such interesting
Dave Love <fx@gnu.org>
parents:
diff changeset
185 character in the current line. @kbd{M-@key{TAB}} does not change the
Dave Love <fx@gnu.org>
parents:
diff changeset
186 text; it only moves point. ``Interesting'' characters are defined by
Dave Love <fx@gnu.org>
parents:
diff changeset
187 the variable @code{picture-tab-chars}, which should define a set of
Dave Love <fx@gnu.org>
parents:
diff changeset
188 characters. The syntax for this variable is like the syntax used inside
Dave Love <fx@gnu.org>
parents:
diff changeset
189 of @samp{[@dots{}]} in a regular expression---but without the @samp{[}
Dave Love <fx@gnu.org>
parents:
diff changeset
190 and the @samp{]}. Its default value is @code{"!-~"}.
Dave Love <fx@gnu.org>
parents:
diff changeset
191
Dave Love <fx@gnu.org>
parents:
diff changeset
192 @findex picture-tab
Dave Love <fx@gnu.org>
parents:
diff changeset
193 @key{TAB} itself runs @code{picture-tab}, which operates based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
194 current tab stop settings; it is the Picture mode equivalent of
Dave Love <fx@gnu.org>
parents:
diff changeset
195 @code{tab-to-tab-stop}. Normally it just moves point, but with a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
196 argument it clears the text that it moves over.
Dave Love <fx@gnu.org>
parents:
diff changeset
197
Dave Love <fx@gnu.org>
parents:
diff changeset
198 @kindex C-c TAB @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
199 @findex picture-set-tab-stops
Dave Love <fx@gnu.org>
parents:
diff changeset
200 The context-based and tab-stop-based forms of tabbing are brought
Dave Love <fx@gnu.org>
parents:
diff changeset
201 together by the command @kbd{C-c @key{TAB}} (@code{picture-set-tab-stops}).
Dave Love <fx@gnu.org>
parents:
diff changeset
202 This command sets the tab stops to the positions which @kbd{M-@key{TAB}}
Dave Love <fx@gnu.org>
parents:
diff changeset
203 would consider significant in the current line. The use of this command,
Dave Love <fx@gnu.org>
parents:
diff changeset
204 together with @key{TAB}, can get the effect of context-based tabbing. But
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @kbd{M-@key{TAB}} is more convenient in the cases where it is sufficient.
Dave Love <fx@gnu.org>
parents:
diff changeset
206
Dave Love <fx@gnu.org>
parents:
diff changeset
207 It may be convenient to prevent use of actual tab characters in
Dave Love <fx@gnu.org>
parents:
diff changeset
208 pictures. For example, this prevents @kbd{C-x @key{TAB}} from messing
Dave Love <fx@gnu.org>
parents:
diff changeset
209 up the picture. You can do this by setting the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
210 @code{indent-tabs-mode} to @code{nil}. @xref{Just Spaces}.
Dave Love <fx@gnu.org>
parents:
diff changeset
211
Dave Love <fx@gnu.org>
parents:
diff changeset
212 @node Rectangles in Picture,, Tabs in Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
213 @section Picture Mode Rectangle Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
214 @cindex rectangles and Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
215 @cindex Picture mode and rectangles
Dave Love <fx@gnu.org>
parents:
diff changeset
216
Dave Love <fx@gnu.org>
parents:
diff changeset
217 Picture mode defines commands for working on rectangular pieces of the
Dave Love <fx@gnu.org>
parents:
diff changeset
218 text in ways that fit with the quarter-plane model. The standard rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
219 commands may also be useful (@pxref{Rectangles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
220
Dave Love <fx@gnu.org>
parents:
diff changeset
221 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
222 @item C-c C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
223 Clear out the region-rectangle with spaces
Dave Love <fx@gnu.org>
parents:
diff changeset
224 (@code{picture-clear-rectangle}). With argument, delete the text.
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @item C-c C-w @var{r}
Dave Love <fx@gnu.org>
parents:
diff changeset
226 Similar but save rectangle contents in register @var{r} first
Dave Love <fx@gnu.org>
parents:
diff changeset
227 (@code{picture-clear-rectangle-to-register}).
Dave Love <fx@gnu.org>
parents:
diff changeset
228 @item C-c C-y
Dave Love <fx@gnu.org>
parents:
diff changeset
229 Copy last killed rectangle into the buffer by overwriting, with upper
Dave Love <fx@gnu.org>
parents:
diff changeset
230 left corner at point (@code{picture-yank-rectangle}). With argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
231 insert instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
232 @item C-c C-x @var{r}
Dave Love <fx@gnu.org>
parents:
diff changeset
233 Similar, but use the rectangle in register @var{r}
Dave Love <fx@gnu.org>
parents:
diff changeset
234 (@code{picture-yank-rectangle-from-register}).
Dave Love <fx@gnu.org>
parents:
diff changeset
235 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
236
Dave Love <fx@gnu.org>
parents:
diff changeset
237 @kindex C-c C-k @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
238 @kindex C-c C-w @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
239 @findex picture-clear-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
240 @findex picture-clear-rectangle-to-register
Dave Love <fx@gnu.org>
parents:
diff changeset
241 The picture rectangle commands @kbd{C-c C-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
242 (@code{picture-clear-rectangle}) and @kbd{C-c C-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
243 (@code{picture-clear-rectangle-to-register}) differ from the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
244 rectangle commands in that they normally clear the rectangle instead of
Dave Love <fx@gnu.org>
parents:
diff changeset
245 deleting it; this is analogous with the way @kbd{C-d} is changed in Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
246 mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
247
Dave Love <fx@gnu.org>
parents:
diff changeset
248 However, deletion of rectangles can be useful in Picture mode, so
Dave Love <fx@gnu.org>
parents:
diff changeset
249 these commands delete the rectangle if given a numeric argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
250 @kbd{C-c C-k} either with or without a numeric argument saves the
Dave Love <fx@gnu.org>
parents:
diff changeset
251 rectangle for @kbd{C-c C-y}.
Dave Love <fx@gnu.org>
parents:
diff changeset
252
Dave Love <fx@gnu.org>
parents:
diff changeset
253 @kindex C-c C-y @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
254 @kindex C-c C-x @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
255 @findex picture-yank-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
256 @findex picture-yank-rectangle-from-register
Dave Love <fx@gnu.org>
parents:
diff changeset
257 The Picture mode commands for yanking rectangles differ from the
Dave Love <fx@gnu.org>
parents:
diff changeset
258 standard ones in overwriting instead of inserting. This is the same way
Dave Love <fx@gnu.org>
parents:
diff changeset
259 that Picture mode insertion of other text differs from other modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
260 @kbd{C-c C-y} (@code{picture-yank-rectangle}) inserts (by overwriting)
Dave Love <fx@gnu.org>
parents:
diff changeset
261 the rectangle that was most recently killed, while @kbd{C-c C-x}
Dave Love <fx@gnu.org>
parents:
diff changeset
262 (@code{picture-yank-rectangle-from-register}) does likewise for the
Dave Love <fx@gnu.org>
parents:
diff changeset
263 rectangle found in a specified register.