annotate doc/emacs/picture-xtra.texi @ 109453:af9e12929a95

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