Next: , Previous: Insert in Picture, Up: Picture Mode

40.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.