Pictureモードでは、タブのような動作が2つ提供されます。コンテキストベースのタブ動作には、M-TAB
(picture-tab-search
)を使用します。引数を与えないと、前の空でない行で、空白の後の次の“意味をもつ”文字の下にポイントを移動します。ここで“次”とは、“開始した位置から水平方向に大な位置”という意味です。C-u
M-TABのようにプレフィックス引数を指定した場合、このコマンドはカレント行で次の意味のある文字に移動します。M-TABはテキストを変更せず、ポイントだけを移動します。“意味のある”文字は変数picture-tab-chars
により定義され、これは一連の文字で定義されます。この変数の構文は正規表現での‘[…]’の内側で使用される構文と似ていますが、‘[’と‘]’はありません。デフォルト値は"!-~"
です。
TABはpicture-tab
を実行し、これはカレントのタブストップの設定にもとづき動作します。Pictureモードではtab-to-tab-stop
と等価です。通常はポイントを移動するだけですが、数引数を指定した場合は、移動先までのテキストをクリアーします。
コンテキストベースとタブストップベースのタブ動作形式は、C-c TAB
(picture-set-tab-stops
)で合わせることができます。このコマンドは、カレント行にたいして、M-TABが意味をもつと判断するであろう位置に、タブストップをセットします。このコマンドの使い方としては、TABと合わせて、コンテキストベースの効果を得ることができます。しかしM-TABで充分な場合は、そちらのほうが便利です。
ピクチャー内では、実際のタブ文字を抑止するほうが便利かもしれません。たとえば、これによりC-x
TABがピクチャーをめちゃくちゃにするのを防ぐことができます。変数indent-tabs-mode
をnil
にセットすることにより、これを行なうことができます。