42.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 prefix 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
.