annotate man/picture.texi @ 68071:3d53033a6d29

(Obtaining Flymake): Update Flymake's CVS repository URL.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 06 Jan 2006 12:58:25 +0000
parents 3723093a21fd
children dc2d5a6655a3 2d92f5c9d6ae
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.
64890
3723093a21fd Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 60858
diff changeset
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2002, 2003,
3723093a21fd Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 60858
diff changeset
3 @c 2004, 2005 Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @node Picture, Sending Mail, Abbrevs, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @chapter Editing Pictures
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex pictures
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @cindex making pictures out of text characters
Dave Love <fx@gnu.org>
parents:
diff changeset
9 @findex edit-picture
Dave Love <fx@gnu.org>
parents:
diff changeset
10
Dave Love <fx@gnu.org>
parents:
diff changeset
11 To edit a picture made out of text characters (for example, a picture
Dave Love <fx@gnu.org>
parents:
diff changeset
12 of the division of a register into fields, as a comment in a program),
Dave Love <fx@gnu.org>
parents:
diff changeset
13 use the command @kbd{M-x edit-picture} to enter Picture mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 In Picture mode, editing is based on the @dfn{quarter-plane} model of
Dave Love <fx@gnu.org>
parents:
diff changeset
16 text, according to which the text characters lie studded on an area that
Dave Love <fx@gnu.org>
parents:
diff changeset
17 stretches infinitely far to the right and downward. The concept of the end
Dave Love <fx@gnu.org>
parents:
diff changeset
18 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
19 last nonblank character on the line is found.
Dave Love <fx@gnu.org>
parents:
diff changeset
20
Dave Love <fx@gnu.org>
parents:
diff changeset
21 Of course, Emacs really always considers text as a sequence of
Dave Love <fx@gnu.org>
parents:
diff changeset
22 characters, and lines really do have ends. But Picture mode replaces
Dave Love <fx@gnu.org>
parents:
diff changeset
23 the most frequently-used commands with variants that simulate the
Dave Love <fx@gnu.org>
parents:
diff changeset
24 quarter-plane model of text. They do this by inserting spaces or by
Dave Love <fx@gnu.org>
parents:
diff changeset
25 converting tabs to spaces.
Dave Love <fx@gnu.org>
parents:
diff changeset
26
Dave Love <fx@gnu.org>
parents:
diff changeset
27 Most of the basic editing commands of Emacs are redefined by Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
28 to do essentially the same thing but in a quarter-plane way. In addition,
Dave Love <fx@gnu.org>
parents:
diff changeset
29 Picture mode defines various keys starting with the @kbd{C-c} prefix to
Dave Love <fx@gnu.org>
parents:
diff changeset
30 run special picture editing commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
31
Dave Love <fx@gnu.org>
parents:
diff changeset
32 One of these keys, @kbd{C-c C-c}, is pretty important. Often a
Dave Love <fx@gnu.org>
parents:
diff changeset
33 picture is part of a larger file that is usually edited in some other
Dave Love <fx@gnu.org>
parents:
diff changeset
34 major mode. @kbd{M-x edit-picture} records the name of the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
35 major mode so you can use the @kbd{C-c C-c} command
Dave Love <fx@gnu.org>
parents:
diff changeset
36 (@code{picture-mode-exit}) later to go back to that mode. @kbd{C-c C-c}
Dave Love <fx@gnu.org>
parents:
diff changeset
37 also deletes spaces from the ends of lines, unless given a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
38 argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
39
Dave Love <fx@gnu.org>
parents:
diff changeset
40 The special commands of Picture mode all work in other modes (provided
Dave Love <fx@gnu.org>
parents:
diff changeset
41 the @file{picture} library is loaded), but are not bound to keys except
Dave Love <fx@gnu.org>
parents:
diff changeset
42 in Picture mode. The descriptions below talk of moving ``one column''
Dave Love <fx@gnu.org>
parents:
diff changeset
43 and so on, but all the picture mode commands handle numeric arguments as
Dave Love <fx@gnu.org>
parents:
diff changeset
44 their normal equivalents do.
Dave Love <fx@gnu.org>
parents:
diff changeset
45
Dave Love <fx@gnu.org>
parents:
diff changeset
46 @vindex picture-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
47 Turning on Picture mode runs the hook @code{picture-mode-hook}
59797
55b6b84bb3c1 (Picture): Mention artist.el.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
48 (@pxref{Hooks}). Additional extensions to Picture mode can be found
55b6b84bb3c1 (Picture): Mention artist.el.
Richard M. Stallman <rms@gnu.org>
parents: 52401
diff changeset
49 in @file{artist.el}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
50
Dave Love <fx@gnu.org>
parents:
diff changeset
51 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
52 * Basic Picture:: Basic concepts and simple commands of Picture Mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
53 * Insert in Picture:: Controlling direction of cursor motion
Dave Love <fx@gnu.org>
parents:
diff changeset
54 after "self-inserting" characters.
Dave Love <fx@gnu.org>
parents:
diff changeset
55 * Tabs in Picture:: Various features for tab stops and indentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
56 * Rectangles in Picture:: Clearing and superimposing rectangles.
Dave Love <fx@gnu.org>
parents:
diff changeset
57 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
58
Dave Love <fx@gnu.org>
parents:
diff changeset
59 @node Basic Picture, Insert in Picture, Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
60 @section Basic Editing in Picture Mode
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 @findex picture-forward-column
Dave Love <fx@gnu.org>
parents:
diff changeset
63 @findex picture-backward-column
Dave Love <fx@gnu.org>
parents:
diff changeset
64 @findex picture-move-down
Dave Love <fx@gnu.org>
parents:
diff changeset
65 @findex picture-move-up
Dave Love <fx@gnu.org>
parents:
diff changeset
66 @cindex editing in Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
67
Dave Love <fx@gnu.org>
parents:
diff changeset
68 Most keys do the same thing in Picture mode that they usually do, but
Dave Love <fx@gnu.org>
parents:
diff changeset
69 do it in a quarter-plane style. For example, @kbd{C-f} is rebound to
Dave Love <fx@gnu.org>
parents:
diff changeset
70 run @code{picture-forward-column}, a command which moves point one
Dave Love <fx@gnu.org>
parents:
diff changeset
71 column to the right, inserting a space if necessary so that the actual
Dave Love <fx@gnu.org>
parents:
diff changeset
72 end of the line makes no difference. @kbd{C-b} is rebound to run
Dave Love <fx@gnu.org>
parents:
diff changeset
73 @code{picture-backward-column}, which always moves point left one
Dave Love <fx@gnu.org>
parents:
diff changeset
74 column, converting a tab to multiple spaces if necessary. @kbd{C-n} and
Dave Love <fx@gnu.org>
parents:
diff changeset
75 @kbd{C-p} are rebound to run @code{picture-move-down} and
Dave Love <fx@gnu.org>
parents:
diff changeset
76 @code{picture-move-up}, which can either insert spaces or convert tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
77 as necessary to make sure that point stays in exactly the same column.
Dave Love <fx@gnu.org>
parents:
diff changeset
78 @kbd{C-e} runs @code{picture-end-of-line}, which moves to after the last
Dave Love <fx@gnu.org>
parents:
diff changeset
79 nonblank character on the line. There is no need to change @kbd{C-a},
Dave Love <fx@gnu.org>
parents:
diff changeset
80 as the choice of screen model does not affect beginnings of
Dave Love <fx@gnu.org>
parents:
diff changeset
81 lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
82
Dave Love <fx@gnu.org>
parents:
diff changeset
83 @findex picture-newline
Dave Love <fx@gnu.org>
parents:
diff changeset
84 Insertion of text is adapted to the quarter-plane screen model through
Dave Love <fx@gnu.org>
parents:
diff changeset
85 the use of Overwrite mode (@pxref{Minor Modes}). Self-inserting characters
Dave Love <fx@gnu.org>
parents:
diff changeset
86 replace existing text, column by column, rather than pushing existing text
Dave Love <fx@gnu.org>
parents:
diff changeset
87 to the right. @key{RET} runs @code{picture-newline}, which just moves to
Dave Love <fx@gnu.org>
parents:
diff changeset
88 the beginning of the following line so that new text will replace that
Dave Love <fx@gnu.org>
parents:
diff changeset
89 line.
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 @findex picture-backward-clear-column
Dave Love <fx@gnu.org>
parents:
diff changeset
92 @findex picture-clear-column
Dave Love <fx@gnu.org>
parents:
diff changeset
93 @findex picture-clear-line
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
94 In Picture mode, the commands that normally delete or kill text,
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
95 instead erase text (replacing it with spaces). @key{DEL}
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
96 (@code{picture-backward-clear-column}) replaces the preceding
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
97 character with a space rather than removing it; this moves point
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
98 backwards. @kbd{C-d} (@code{picture-clear-column}) replaces the next
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
99 character or characters with spaces, but does not move point. (If you
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
100 want to clear characters to spaces and move forward over them, use
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
101 @key{SPC}.) @kbd{C-k} (@code{picture-clear-line}) really kills the
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
102 contents of lines, but does not delete the newlines from the buffer.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
103
Dave Love <fx@gnu.org>
parents:
diff changeset
104 @findex picture-open-line
Dave Love <fx@gnu.org>
parents:
diff changeset
105 To do actual insertion, you must use special commands. @kbd{C-o}
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
106 (@code{picture-open-line}) creates a blank line after the current
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
107 line; it never splits a line. @kbd{C-M-o} (@code{split-line}) makes
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
108 sense in Picture mode, so it is not changed. @kbd{C-j}
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
109 (@code{picture-duplicate-line}) inserts another line with the same
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
110 contents below the current line.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
111
Dave Love <fx@gnu.org>
parents:
diff changeset
112 @kindex C-c C-d @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
113 To do actual deletion in Picture mode, use @kbd{C-w}, @kbd{C-c C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
114 (which is defined as @code{delete-char}, as @kbd{C-d} is in other
Dave Love <fx@gnu.org>
parents:
diff changeset
115 modes), or one of the picture rectangle commands (@pxref{Rectangles in
Dave Love <fx@gnu.org>
parents:
diff changeset
116 Picture}).
Dave Love <fx@gnu.org>
parents:
diff changeset
117
Dave Love <fx@gnu.org>
parents:
diff changeset
118 @node Insert in Picture, Tabs in Picture, Basic Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
119 @section Controlling Motion after Insert
Dave Love <fx@gnu.org>
parents:
diff changeset
120
Dave Love <fx@gnu.org>
parents:
diff changeset
121 @findex picture-movement-up
Dave Love <fx@gnu.org>
parents:
diff changeset
122 @findex picture-movement-down
Dave Love <fx@gnu.org>
parents:
diff changeset
123 @findex picture-movement-left
Dave Love <fx@gnu.org>
parents:
diff changeset
124 @findex picture-movement-right
Dave Love <fx@gnu.org>
parents:
diff changeset
125 @findex picture-movement-nw
Dave Love <fx@gnu.org>
parents:
diff changeset
126 @findex picture-movement-ne
Dave Love <fx@gnu.org>
parents:
diff changeset
127 @findex picture-movement-sw
Dave Love <fx@gnu.org>
parents:
diff changeset
128 @findex picture-movement-se
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 @kindex C-c / @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
136 @kindex C-c \ @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
137 Since ``self-inserting'' characters in Picture mode overwrite and move
Dave Love <fx@gnu.org>
parents:
diff changeset
138 point, there is no essential restriction on how point should be moved.
Dave Love <fx@gnu.org>
parents:
diff changeset
139 Normally point moves right, but you can specify any of the eight
Dave Love <fx@gnu.org>
parents:
diff changeset
140 orthogonal or diagonal directions for motion after a ``self-inserting''
Dave Love <fx@gnu.org>
parents:
diff changeset
141 character. This is useful for drawing lines in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
142
Dave Love <fx@gnu.org>
parents:
diff changeset
143 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
144 @item C-c <
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
145 @itemx C-c @key{LEFT}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
146 Move left after insertion (@code{picture-movement-left}).
Dave Love <fx@gnu.org>
parents:
diff changeset
147 @item C-c >
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
148 @itemx C-c @key{RIGHT}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
149 Move right after insertion (@code{picture-movement-right}).
Dave Love <fx@gnu.org>
parents:
diff changeset
150 @item C-c ^
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
151 @itemx C-c @key{UP}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
152 Move up after insertion (@code{picture-movement-up}).
Dave Love <fx@gnu.org>
parents:
diff changeset
153 @item C-c .
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
154 @itemx C-c @key{DOWN}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
155 Move down after insertion (@code{picture-movement-down}).
Dave Love <fx@gnu.org>
parents:
diff changeset
156 @item C-c `
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
157 @itemx C-c @key{HOME}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
158 Move up and left (``northwest'') after insertion (@code{picture-movement-nw}).
Dave Love <fx@gnu.org>
parents:
diff changeset
159 @item C-c '
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
160 @itemx C-c @key{PAGEUP}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
161 Move up and right (``northeast'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
162 (@code{picture-movement-ne}).
Dave Love <fx@gnu.org>
parents:
diff changeset
163 @item C-c /
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
164 @itemx C-c @key{END}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
165 Move down and left (``southwest'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
166 @*(@code{picture-movement-sw}).
Dave Love <fx@gnu.org>
parents:
diff changeset
167 @item C-c \
60858
29356dc048ef (Insert in Picture): Document C-c arrow combos.
Richard M. Stallman <rms@gnu.org>
parents: 59797
diff changeset
168 @itemx C-c @key{PAGEDOWN}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
169 Move down and right (``southeast'') after insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
170 @*(@code{picture-movement-se}).
Dave Love <fx@gnu.org>
parents:
diff changeset
171 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
172
Dave Love <fx@gnu.org>
parents:
diff changeset
173 @kindex C-c C-f @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
174 @kindex C-c C-b @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
175 @findex picture-motion
Dave Love <fx@gnu.org>
parents:
diff changeset
176 @findex picture-motion-reverse
Dave Love <fx@gnu.org>
parents:
diff changeset
177 Two motion commands move based on the current Picture insertion
Dave Love <fx@gnu.org>
parents:
diff changeset
178 direction. The command @kbd{C-c C-f} (@code{picture-motion}) moves in the
Dave Love <fx@gnu.org>
parents:
diff changeset
179 same direction as motion after ``insertion'' currently does, while @kbd{C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
180 C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
Dave Love <fx@gnu.org>
parents:
diff changeset
181
Dave Love <fx@gnu.org>
parents:
diff changeset
182 @node Tabs in Picture, Rectangles in Picture, Insert in Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
183 @section Picture Mode Tabs
Dave Love <fx@gnu.org>
parents:
diff changeset
184
Dave Love <fx@gnu.org>
parents:
diff changeset
185 @kindex M-TAB @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
186 @findex picture-tab-search
Dave Love <fx@gnu.org>
parents:
diff changeset
187 @vindex picture-tab-chars
Dave Love <fx@gnu.org>
parents:
diff changeset
188 Two kinds of tab-like action are provided in Picture mode. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
189 @kbd{M-@key{TAB}} (@code{picture-tab-search}) for context-based tabbing.
Dave Love <fx@gnu.org>
parents:
diff changeset
190 With no argument, it moves to a point underneath the next
Dave Love <fx@gnu.org>
parents:
diff changeset
191 ``interesting'' character that follows whitespace in the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
192 nonblank line. ``Next'' here means ``appearing at a horizontal position
Dave Love <fx@gnu.org>
parents:
diff changeset
193 greater than the one point starts out at.'' With an argument, as in
Dave Love <fx@gnu.org>
parents:
diff changeset
194 @kbd{C-u M-@key{TAB}}, this command moves to the next such interesting
Dave Love <fx@gnu.org>
parents:
diff changeset
195 character in the current line. @kbd{M-@key{TAB}} does not change the
Dave Love <fx@gnu.org>
parents:
diff changeset
196 text; it only moves point. ``Interesting'' characters are defined by
Dave Love <fx@gnu.org>
parents:
diff changeset
197 the variable @code{picture-tab-chars}, which should define a set of
Dave Love <fx@gnu.org>
parents:
diff changeset
198 characters. The syntax for this variable is like the syntax used inside
Dave Love <fx@gnu.org>
parents:
diff changeset
199 of @samp{[@dots{}]} in a regular expression---but without the @samp{[}
Dave Love <fx@gnu.org>
parents:
diff changeset
200 and the @samp{]}. Its default value is @code{"!-~"}.
Dave Love <fx@gnu.org>
parents:
diff changeset
201
Dave Love <fx@gnu.org>
parents:
diff changeset
202 @findex picture-tab
Dave Love <fx@gnu.org>
parents:
diff changeset
203 @key{TAB} itself runs @code{picture-tab}, which operates based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
204 current tab stop settings; it is the Picture mode equivalent of
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @code{tab-to-tab-stop}. Normally it just moves point, but with a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
206 argument it clears the text that it moves over.
Dave Love <fx@gnu.org>
parents:
diff changeset
207
Dave Love <fx@gnu.org>
parents:
diff changeset
208 @kindex C-c TAB @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
209 @findex picture-set-tab-stops
Dave Love <fx@gnu.org>
parents:
diff changeset
210 The context-based and tab-stop-based forms of tabbing are brought
Dave Love <fx@gnu.org>
parents:
diff changeset
211 together by the command @kbd{C-c @key{TAB}} (@code{picture-set-tab-stops}).
Dave Love <fx@gnu.org>
parents:
diff changeset
212 This command sets the tab stops to the positions which @kbd{M-@key{TAB}}
Dave Love <fx@gnu.org>
parents:
diff changeset
213 would consider significant in the current line. The use of this command,
Dave Love <fx@gnu.org>
parents:
diff changeset
214 together with @key{TAB}, can get the effect of context-based tabbing. But
Dave Love <fx@gnu.org>
parents:
diff changeset
215 @kbd{M-@key{TAB}} is more convenient in the cases where it is sufficient.
Dave Love <fx@gnu.org>
parents:
diff changeset
216
Dave Love <fx@gnu.org>
parents:
diff changeset
217 It may be convenient to prevent use of actual tab characters in
Dave Love <fx@gnu.org>
parents:
diff changeset
218 pictures. For example, this prevents @kbd{C-x @key{TAB}} from messing
Dave Love <fx@gnu.org>
parents:
diff changeset
219 up the picture. You can do this by setting the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
220 @code{indent-tabs-mode} to @code{nil}. @xref{Just Spaces}.
Dave Love <fx@gnu.org>
parents:
diff changeset
221
Dave Love <fx@gnu.org>
parents:
diff changeset
222 @node Rectangles in Picture,, Tabs in Picture, Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
223 @section Picture Mode Rectangle Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
224 @cindex rectangles and Picture mode
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @cindex Picture mode and rectangles
Dave Love <fx@gnu.org>
parents:
diff changeset
226
Dave Love <fx@gnu.org>
parents:
diff changeset
227 Picture mode defines commands for working on rectangular pieces of the
Dave Love <fx@gnu.org>
parents:
diff changeset
228 text in ways that fit with the quarter-plane model. The standard rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
229 commands may also be useful (@pxref{Rectangles}).
Dave Love <fx@gnu.org>
parents:
diff changeset
230
Dave Love <fx@gnu.org>
parents:
diff changeset
231 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
232 @item C-c C-k
Dave Love <fx@gnu.org>
parents:
diff changeset
233 Clear out the region-rectangle with spaces
Dave Love <fx@gnu.org>
parents:
diff changeset
234 (@code{picture-clear-rectangle}). With argument, delete the text.
Dave Love <fx@gnu.org>
parents:
diff changeset
235 @item C-c C-w @var{r}
38461
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
236 Similar, but save rectangle contents in register @var{r} first
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
237 (@code{picture-clear-rectangle-to-register}).
Dave Love <fx@gnu.org>
parents:
diff changeset
238 @item C-c C-y
Dave Love <fx@gnu.org>
parents:
diff changeset
239 Copy last killed rectangle into the buffer by overwriting, with upper
Dave Love <fx@gnu.org>
parents:
diff changeset
240 left corner at point (@code{picture-yank-rectangle}). With argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
241 insert instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
242 @item C-c C-x @var{r}
Dave Love <fx@gnu.org>
parents:
diff changeset
243 Similar, but use the rectangle in register @var{r}
Dave Love <fx@gnu.org>
parents:
diff changeset
244 (@code{picture-yank-rectangle-from-register}).
Dave Love <fx@gnu.org>
parents:
diff changeset
245 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
246
Dave Love <fx@gnu.org>
parents:
diff changeset
247 @kindex C-c C-k @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
248 @kindex C-c C-w @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
249 @findex picture-clear-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
250 @findex picture-clear-rectangle-to-register
Dave Love <fx@gnu.org>
parents:
diff changeset
251 The picture rectangle commands @kbd{C-c C-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
252 (@code{picture-clear-rectangle}) and @kbd{C-c C-w}
Dave Love <fx@gnu.org>
parents:
diff changeset
253 (@code{picture-clear-rectangle-to-register}) differ from the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
254 rectangle commands in that they normally clear the rectangle instead of
Dave Love <fx@gnu.org>
parents:
diff changeset
255 deleting it; this is analogous with the way @kbd{C-d} is changed in Picture
Dave Love <fx@gnu.org>
parents:
diff changeset
256 mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
257
Dave Love <fx@gnu.org>
parents:
diff changeset
258 However, deletion of rectangles can be useful in Picture mode, so
Dave Love <fx@gnu.org>
parents:
diff changeset
259 these commands delete the rectangle if given a numeric argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
260 @kbd{C-c C-k} either with or without a numeric argument saves the
Dave Love <fx@gnu.org>
parents:
diff changeset
261 rectangle for @kbd{C-c C-y}.
Dave Love <fx@gnu.org>
parents:
diff changeset
262
Dave Love <fx@gnu.org>
parents:
diff changeset
263 @kindex C-c C-y @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
264 @kindex C-c C-x @r{(Picture mode)}
Dave Love <fx@gnu.org>
parents:
diff changeset
265 @findex picture-yank-rectangle
Dave Love <fx@gnu.org>
parents:
diff changeset
266 @findex picture-yank-rectangle-from-register
Dave Love <fx@gnu.org>
parents:
diff changeset
267 The Picture mode commands for yanking rectangles differ from the
38461
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
268 standard ones in that they overwrite instead of inserting. This is
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
269 the same way that Picture mode insertion of other text differs from
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
270 other modes. @kbd{C-c C-y} (@code{picture-yank-rectangle}) inserts
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
271 (by overwriting) the rectangle that was most recently killed, while
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
272 @kbd{C-c C-x} (@code{picture-yank-rectangle-from-register}) does
23f63206a867 Proofreading fixes from Chris Green <chris_e_green@yahoo.com>.
Eli Zaretskii <eliz@gnu.org>
parents: 25829
diff changeset
273 likewise for the rectangle found in a specified register.
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38461
diff changeset
274
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38461
diff changeset
275 @ignore
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38461
diff changeset
276 arch-tag: b7589747-683c-4f40-aed8-1b10403cb666
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38461
diff changeset
277 @end ignore