文本行是缓冲区中由换行符分隔的部分,换行符被视为前一行的一部分。首行文本始于缓冲区开头,末行文本终于缓冲区末尾,无论最后一个字符是否为换行符。缓冲区的文本行划分不受窗口宽度、显示中的行延续、制表符与控制字符的显示方式影响。
该函数将光标移动到当前行开头。若参数 count 不为 nil 或 1,则先向前移动 count−1行,再移至该行开头。
该函数不会跨越字段边界移动光标(see 定义与使用域),除非移动后会进入另一行;因此当 count 为 nil 或 1 且光标初始位于字段边界时,光标不会移动。若要忽略字段边界,可将inhibit-field-text-motion绑定为t,或改用 forward-line 函数。例如,(forward-line 0) 的效果与 (beginning-of-line) 相同,区别在于前者会忽略字段边界。
若该函数到达缓冲区末尾(或缩进限制下的可访问区域末尾),会将光标置于该处,不会抛出错误。
返回 (beginning-of-line count) 将会移动到的位置。
该函数将光标移动到当前行末尾。若参数 count 不为 nil 或 1,则先向前移动 count−1 行,再移至该行末尾。
该函数不会跨越字段边界移动光标(see 定义与使用域),除非移动后会进入另一行;因此当 count 为 nil 或 1 且光标初始位于字段边界时,光标不会移动。若要忽略字段边界,可将 inhibit-field-text-motion 绑定为 t。
若该函数到达缓冲区末尾(或缩进限制下的可访问区域末尾),会将光标置于该处,不会抛出错误。
返回 (end-of-line count) 将会移动到的位置。
功能与 line-beginning-position 相同,但会忽略字段边界(且效率更高)。
功能与 line-end-position 相同,但会忽略字段边界(且效率更高)。
该函数将光标向前移动 count 行,移至目标行的下一行开头。若 count 为负数,则向后移动 −count 行,移至目标行的前一行开头。若 count 为 0,则将光标移至当前行开头。若 count 为 nil,则默认值为1。
若 forward-line 在移动指定行数前到达缓冲区开头或末尾(或可访问区域边界),会将光标置于该处,不会抛出错误。
forward-line 返回 count 与实际移动行数的差值。例如从仅有3行的缓冲区开头尝试向下移动5行,光标会停在最后一行末尾,返回值为2。一个明确的例外情况是:若可访问区域的最后一行为非空且无换行符(如缓冲区末尾无换行),函数会将光标置于该行末尾,并将该行计为一次成功移动的行。
交互式调用时,count 为传入的数字前缀参数。
该函数返回当前缓冲区中 start 与 end 位置之间的行数。若 start 与 end 位置相同则返回0;否则至少返回1,即使二者位于同一行。这是因为二者之间的非空文本,单独来看至少包含一行。
若可选参数 ignore-invisible-lines 为非 nil 值,统计时将不计入不可见行。
该函数返回当前缓冲区中 start 与 end 位置之间的单词数。
该函数也可交互式调用。此时会打印信息,报告整个缓冲区或激活区域内的行数、单词数与字符数。
该函数返回缓冲区位置 pos 对应的行号。若 pos 为 nil 或省略,则使用当前光标位置。若 absolute 为 nil(默认值),计数从 (point-min) 开始,因此结果对应(可能受缩进限制的)缓冲区可访问区域内容。若 absolute 为非 nil 值,则忽略缩进限制并返回绝对行号。
另请参阅 查看光标附近的文本 中的 bolp 和 eolp 函数。这些函数不会移动光标,仅判断光标是否已位于行首或行尾。