Pictureモードでは、2種類のタブのような操作が提供されています。コンテキストベースのタブ移動には M-TAB (picture-tab-search)
を使用します。引数を指定しない場合、直前の非空白行の空白文字の後に続く、次の「興味深い」文字の直下のポイントに移動します。ここでの「次」とは、「ポイントが開始した位置よりも水平方向の位置が大きい」ことを意味します。C-u M-TAB
のように接頭辞引数を指定すると、このコマンドは現在の行にある次のそのような興味深い文字に移動します。M-TAB はテキストを変更せず、ポイントのみを移動させます。「興味深い」文字は変数 picture-tab-chars
によって定義され、この変数には文字セットが定義されている必要があります。この変数の構文は、正規表現内の「[…]」で使用される構文と同様ですが、「[」および「]」は含まれません。デフォルト値は "!-~" です。
TAB 自体は picture-tab
を実行し、これは現在のタブストップ設定に基づいて動作します。いわば tab-to-tab-stop
のピクチャーモード版です。通常は単にポイントを移動させますが、数値引数を指定すると、移動先のテキストをクリアします。
コンテキストベースのタブ移動とタブストップベースのタブ移動は、C-c TAB (picture-set-tab-stops) コマンドによって統合されます。このコマンドは、現在の行において
M-TAB
が重要とみなす位置にタブストップを設定します。このコマンドを TAB
と併用することで、コンテキストベースのタブ移動と同様の効果を得ることができます。ただし、それで十分な場合には、M-TAB の方が便利です。
画像内で実際のタブ文字の使用を防ぐと便利な場合があります。例えば、これにより C-x TAB が画像を乱すのを防げます。変数 indent-tabs-mode に nil
を設定することで実現できます。