emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to picture-xtra.texi


From: Glenn Morris
Subject: [Emacs-diffs] Changes to picture-xtra.texi
Date: Thu, 06 Sep 2007 04:48:03 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       07/09/06 04:48:03

Index: picture-xtra.texi
===================================================================
RCS file: picture-xtra.texi
diff -N picture-xtra.texi
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ picture-xtra.texi   6 Sep 2007 04:48:02 -0000       1.1
@@ -0,0 +1,291 @@
address@hidden This is part of the Emacs manual.
address@hidden Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, 
Inc.
address@hidden See file emacs.texi for copying conditions.
address@hidden
address@hidden This file is included either in emacs-xtra.texi (when producing 
the
address@hidden printed version) or in the main Emacs manual (for the on-line 
version).
address@hidden Picture Mode
address@hidden Editing Pictures
address@hidden pictures
address@hidden making pictures out of text characters
address@hidden edit-picture
+
+  To edit a picture made out of text characters (for example, a picture
+of the division of a register into fields, as a comment in a program),
+use the command @kbd{M-x edit-picture} to enter Picture mode.
+
+  In Picture mode, editing is based on the @dfn{quarter-plane} model of
+text, according to which the text characters lie studded on an area that
+stretches infinitely far to the right and downward.  The concept of the end
+of a line does not exist in this model; the most you can say is where the
+last nonblank character on the line is found.
+
+  Of course, Emacs really always considers text as a sequence of
+characters, and lines really do have ends.  But Picture mode replaces
+the most frequently-used commands with variants that simulate the
+quarter-plane model of text.  They do this by inserting spaces or by
+converting tabs to spaces.
+
+  Most of the basic editing commands of Emacs are redefined by Picture mode
+to do essentially the same thing but in a quarter-plane way.  In addition,
+Picture mode defines various keys starting with the @kbd{C-c} prefix to
+run special picture editing commands.
+
+  One of these keys, @kbd{C-c C-c}, is particularly important.  Often a
+picture is part of a larger file that is usually edited in some other
+major mode.  @kbd{M-x edit-picture} records the name of the previous
+major mode so you can use the @kbd{C-c C-c} command
+(@code{picture-mode-exit}) later to go back to that mode.  @kbd{C-c C-c}
+also deletes spaces from the ends of lines, unless given a numeric
+argument.
+
+  The special commands of Picture mode all work in other modes (provided
+the @file{picture} library is loaded), but are not bound to keys except
+in Picture mode.  The descriptions below talk of moving ``one column''
+and so on, but all the picture mode commands handle numeric arguments as
+their normal equivalents do.
+
address@hidden picture-mode-hook
+  Turning on Picture mode runs the hook @code{picture-mode-hook}.
+Additional extensions to Picture mode can be found in
address@hidden
+
address@hidden
+* Basic Picture::         Basic concepts and simple commands of Picture Mode.
+* Insert in Picture::     Controlling direction of cursor motion
+                            after "self-inserting" characters.
+* Tabs in Picture::       Various features for tab stops and indentation.
+* Rectangles in Picture:: Clearing and superimposing rectangles.
address@hidden menu
+
address@hidden Basic Picture
address@hidden Basic Editing in Picture Mode
+
address@hidden picture-forward-column
address@hidden picture-backward-column
address@hidden picture-move-down
address@hidden picture-move-up
address@hidden editing in Picture mode
+
+  Most keys do the same thing in Picture mode that they usually do, but
+do it in a quarter-plane style.  For example, @kbd{C-f} is rebound to
+run @code{picture-forward-column}, a command which moves point one
+column to the right, inserting a space if necessary so that the actual
+end of the line makes no difference.  @kbd{C-b} is rebound to run
address@hidden, which always moves point left one
+column, converting a tab to multiple spaces if necessary.  @kbd{C-n} and
address@hidden are rebound to run @code{picture-move-down} and
address@hidden, which can either insert spaces or convert tabs
+as necessary to make sure that point stays in exactly the same column.
address@hidden runs @code{picture-end-of-line}, which moves to after the last
+nonblank character on the line.  There is no need to change @kbd{C-a},
+as the choice of screen model does not affect beginnings of
+lines.
+
address@hidden picture-newline
+  Insertion of text is adapted to the quarter-plane screen model
+through the use of Overwrite mode
address@hidden
+(@pxref{Minor Modes,,, emacs, the Emacs Manual}.)
address@hidden iftex
address@hidden
+(@pxref{Minor Modes}.)
address@hidden ifnottex
+Self-inserting characters replace existing text, column by column,
+rather than pushing existing text to the right.  @key{RET} runs
address@hidden, which just moves to the beginning of the
+following line so that new text will replace that line.
+
address@hidden picture-backward-clear-column
address@hidden picture-clear-column
address@hidden picture-clear-line
+  In Picture mode, the commands that normally delete or kill text,
+instead erase text (replacing it with spaces).  @key{DEL}
+(@code{picture-backward-clear-column}) replaces the preceding
+character with a space rather than removing it; this moves point
+backwards.  @kbd{C-d} (@code{picture-clear-column}) replaces the next
+character or characters with spaces, but does not move point.  (If you
+want to clear characters to spaces and move forward over them, use
address@hidden)  @kbd{C-k} (@code{picture-clear-line}) really kills the
+contents of lines, but does not delete the newlines from the buffer.
+
address@hidden picture-open-line
+  To do actual insertion, you must use special commands.  @kbd{C-o}
+(@code{picture-open-line}) creates a blank line after the current
+line; it never splits a line.  @kbd{C-M-o} (@code{split-line}) makes
+sense in Picture mode, so it is not changed.  @kbd{C-j}
+(@code{picture-duplicate-line}) inserts another line with the same
+contents below the current line.
+
address@hidden C-c C-d @r{(Picture mode)}
+   To do actual deletion in Picture mode, use @kbd{C-w}, @kbd{C-c C-d}
+(which is defined as @code{delete-char}, as @kbd{C-d} is in other
+modes), or one of the picture rectangle commands (@pxref{Rectangles in
+Picture}).
+
address@hidden Insert in Picture
address@hidden Controlling Motion after Insert
+
address@hidden picture-movement-up
address@hidden picture-movement-down
address@hidden picture-movement-left
address@hidden picture-movement-right
address@hidden picture-movement-nw
address@hidden picture-movement-ne
address@hidden picture-movement-sw
address@hidden picture-movement-se
address@hidden C-c < @r{(Picture mode)}
address@hidden C-c > @r{(Picture mode)}
address@hidden C-c ^ @r{(Picture mode)}
address@hidden C-c . @r{(Picture mode)}
address@hidden C-c ` @r{(Picture mode)}
address@hidden C-c ' @r{(Picture mode)}
address@hidden C-c / @r{(Picture mode)}
address@hidden C-c \ @r{(Picture mode)}
+  Since ``self-inserting'' characters in Picture mode overwrite and move
+point, there is no essential restriction on how point should be moved.
+Normally point moves right, but you can specify any of the eight
+orthogonal or diagonal directions for motion after a ``self-inserting''
+character.  This is useful for drawing lines in the buffer.
+
address@hidden @kbd
address@hidden C-c <
address@hidden C-c @key{LEFT}
+Move left after insertion (@code{picture-movement-left}).
address@hidden C-c >
address@hidden C-c @key{RIGHT}
+Move right after insertion (@code{picture-movement-right}).
address@hidden C-c ^
address@hidden C-c @key{UP}
+Move up after insertion (@code{picture-movement-up}).
address@hidden C-c .
address@hidden C-c @key{DOWN}
+Move down after insertion (@code{picture-movement-down}).
address@hidden C-c `
address@hidden C-c @key{HOME}
+Move up and left (``northwest'') after insertion (@code{picture-movement-nw}).
address@hidden C-c '
address@hidden C-c @key{PAGEUP}
+Move up and right (``northeast'') after insertion
+(@code{picture-movement-ne}).
address@hidden C-c /
address@hidden C-c @key{END}
+Move down and left (``southwest'') after insertion
address@hidden(@code{picture-movement-sw}).
address@hidden C-c \
address@hidden C-c @key{PAGEDOWN}
+Move down and right (``southeast'') after insertion
address@hidden(@code{picture-movement-se}).
address@hidden table
+
address@hidden C-c C-f @r{(Picture mode)}
address@hidden C-c C-b @r{(Picture mode)}
address@hidden picture-motion
address@hidden picture-motion-reverse
+  Two motion commands move based on the current Picture insertion
+direction.  The command @kbd{C-c C-f} (@code{picture-motion}) moves in the
+same direction as motion after ``insertion'' currently does, while @kbd{C-c
+C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
+
address@hidden Tabs in Picture
address@hidden Picture Mode Tabs
+
address@hidden M-TAB @r{(Picture mode)}
address@hidden picture-tab-search
address@hidden picture-tab-chars
+  Two kinds of tab-like action are provided in Picture mode.  Use
address@hidden@key{TAB}} (@code{picture-tab-search}) for context-based tabbing.
+With no argument, it moves to a point underneath the next
+``interesting'' character that follows whitespace in the previous
+nonblank line.  ``Next'' here means ``appearing at a horizontal position
+greater than the one point starts out at.''  With an argument, as in
address@hidden address@hidden, this command moves to the next such interesting
+character in the current line.  @address@hidden does not change the
+text; it only moves point.  ``Interesting'' characters are defined by
+the variable @code{picture-tab-chars}, which should define a set of
+characters.  The syntax for this variable is like the syntax used inside
+of @address@hidden in a regular expression---but without the @samp{[}
+and the @samp{]}.  Its default value is @code{"!-~"}.
+
address@hidden picture-tab
+  @key{TAB} itself runs @code{picture-tab}, which operates based on the
+current tab stop settings; it is the Picture mode equivalent of
address@hidden  Normally it just moves point, but with a numeric
+argument it clears the text that it moves over.
+
address@hidden C-c TAB @r{(Picture mode)}
address@hidden picture-set-tab-stops
+  The context-based and tab-stop-based forms of tabbing are brought
+together by the command @kbd{C-c @key{TAB}} (@code{picture-set-tab-stops}).
+This command sets the tab stops to the positions which @address@hidden
+would consider significant in the current line.  The use of this command,
+together with @key{TAB}, can get the effect of context-based tabbing.  But
address@hidden@key{TAB}} is more convenient in the cases where it is sufficient.
+
+  It may be convenient to prevent use of actual tab characters in
+pictures.  For example, this prevents @kbd{C-x @key{TAB}} from messing
+up the picture.  You can do this by setting the variable
address@hidden to @code{nil}.
+
address@hidden Rectangles in Picture
address@hidden Picture Mode Rectangle Commands
address@hidden rectangles and Picture mode
address@hidden Picture mode and rectangles
+
+  Picture mode defines commands for working on rectangular pieces of
+the text in ways that fit with the quarter-plane model.  The standard
+rectangle commands may also be useful.
address@hidden
address@hidden,,, emacs, the Emacs Manual}.
address@hidden iftex
address@hidden
address@hidden
address@hidden ifnottex
+
address@hidden @kbd
address@hidden C-c C-k
+Clear out the region-rectangle with spaces
+(@code{picture-clear-rectangle}).  With argument, delete the text.
address@hidden C-c C-w @var{r}
+Similar, but save rectangle contents in register @var{r} first
+(@code{picture-clear-rectangle-to-register}).
address@hidden C-c C-y
+Copy last killed rectangle into the buffer by overwriting, with upper
+left corner at point (@code{picture-yank-rectangle}).  With argument,
+insert instead.
address@hidden C-c C-x @var{r}
+Similar, but use the rectangle in register @var{r}
+(@code{picture-yank-rectangle-from-register}).
address@hidden table
+
address@hidden C-c C-k @r{(Picture mode)}
address@hidden C-c C-w @r{(Picture mode)}
address@hidden picture-clear-rectangle
address@hidden picture-clear-rectangle-to-register
+  The picture rectangle commands @kbd{C-c C-k}
+(@code{picture-clear-rectangle}) and @kbd{C-c C-w}
+(@code{picture-clear-rectangle-to-register}) differ from the standard
+rectangle commands in that they normally clear the rectangle instead of
+deleting it; this is analogous with the way @kbd{C-d} is changed in Picture
+mode.
+
+  However, deletion of rectangles can be useful in Picture mode, so
+these commands delete the rectangle if given a numeric argument.
address@hidden C-k} either with or without a numeric argument saves the
+rectangle for @kbd{C-c C-y}.
+
address@hidden C-c C-y @r{(Picture mode)}
address@hidden C-c C-x @r{(Picture mode)}
address@hidden picture-yank-rectangle
address@hidden picture-yank-rectangle-from-register
+  The Picture mode commands for yanking rectangles differ from the
+standard ones in that they overwrite instead of inserting.  This is
+the same way that Picture mode insertion of other text differs from
+other modes.  @kbd{C-c C-y} (@code{picture-yank-rectangle}) inserts
+(by overwriting) the rectangle that was most recently killed, while
address@hidden C-x} (@code{picture-yank-rectangle-from-register}) does
+likewise for the rectangle found in a specified register.
+
address@hidden
+   arch-tag: 10e423ad-d896-42f2-a7e8-7018adeaf8c2
address@hidden ignore




reply via email to

[Prev in Thread] Current Thread [Next in Thread]