本节介绍两个基于前一行内容对当前行进行缩进的命令。
该命令在光标处插入空白,延伸至前一个非空行的下一个缩进点(indent point)所在列。 缩进点指空白字符之后的第一个非空白字符。 下一个缩进点是列号大于当前光标列的第一个缩进点。 例如,如果光标位于某行文本第一个非空白字符的左下方,它会插入空白将光标移至该列。
如果前一个非空行没有下一个缩进点(即没有足够大列号的缩进点),
indent-relative 要么不做任何操作(如果 unindented-ok 非 nil),
要么调用 tab-to-tab-stop。
因此,如果光标位于某一短行最后一列的右下方,该命令通常会插入空白,将光标移至下一个制表位。
如果 first-only 非 nil,则只考虑第一个缩进点。
indent-relative 的返回值无确定意义。
在下例中,光标位于第二行开头:
This line is indented twelve spaces. ∗The quick brown fox jumped.
执行表达式 (indent-relative nil) 后结果如下:
This line is indented twelve spaces.
∗The quick brown fox jumped.
在下例中,光标位于 ‘jumped’ 的 ‘m’ 与 ‘p’ 之间:
This line is indented twelve spaces. The quick brown fox jum∗ped.
执行表达式 (indent-relative nil) 后结果如下:
This line is indented twelve spaces. The quick brown fox jum ∗ped.
该命令通过以 t 作为 first-only 参数调用 indent-relative,
使当前行与前一个非空行保持相同缩进。返回值无确定意义。
如果前一个非空行在当前列之后没有缩进点,该命令不执行任何操作。