35.3 Picture Mode Tabs
Two kinds of tab-like action are provided in Picture mode. Use
M-<TAB> (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
C-u M-<TAB>, this command moves to the next such interesting
character in the current line. M-<TAB> does not change the
text; it only moves point. “Interesting” characters are defined by
the variable picture-tab-chars
, which should define a set of
characters. The syntax for this variable is like the syntax used inside
of ‘[...]’ in a regular expression—but without the ‘[’
and the ‘]’. Its default value is "!-~"
.
<TAB> itself runs picture-tab
, which operates based on the
current tab stop settings; it is the Picture mode equivalent of
tab-to-tab-stop
. Normally it just moves point, but with a numeric
argument it clears the text that it moves over.
The context-based and tab-stop-based forms of tabbing are brought
together by the command C-c <TAB> (picture-set-tab-stops
).
This command sets the tab stops to the positions which M-<TAB>
would consider significant in the current line. The use of this command,
together with <TAB>, can get the effect of context-based tabbing. But
M-<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 C-x <TAB> from messing
up the picture. You can do this by setting the variable
indent-tabs-mode
to nil
. See Just Spaces.