33.1 查看光标附近的文本

Emacs 提供了许多用于查看光标周围字符的函数。本节介绍其中几个简单函数。另请参阅 正则表达式搜索 中的 looking-at

以下四个函数中所指的缓冲区 “起始(beginning)” 或 “结尾(end)”,均为缓冲区可访问部分的起始或结尾。

Function: char-after &optional position

该函数返回当前缓冲区中位置 position 处(即该位置紧后方)的字符。若 position 超出有效范围(位于缓冲区起始之前,或在结尾及之后),则返回值为 nilposition 的默认值为光标位置。

下例假设缓冲区第一个字符为 ‘@’:

(string (char-after 1))
     ⇒ "@"
Function: char-before &optional position

该函数返回当前缓冲区中位置 position 紧前方的字符。若 position 超出有效范围(位于缓冲区起始及之前,或在结尾之后),则返回值为 nilposition 的默认值为光标位置。

Function: following-char

该函数返回当前缓冲区中光标后方的字符。用法与 (char-after (point)) 类似。但当光标位于缓冲区结尾时,following-char 返回 0。

注意光标始终位于两个字符之间,屏幕光标通常显示在光标位置之后的字符上。因此,following-char 返回的字符即为屏幕光标所在位置的字符。

下例中,光标位于 ‘a’ 与 ‘c’ 之间:

---------- Buffer: foo ----------
Gentlemen may cry ``Pea∗ce! Peace!,''
but there is no peace.
---------- Buffer: foo ----------

(string (preceding-char))
     ⇒ "a"
(string (following-char))
     ⇒ "c"
Function: preceding-char

该函数返回当前缓冲区中光标前方的字符。示例见上文 following-char 部分。若光标位于缓冲区起始,preceding-char 返回 0。

Function: bobp

若光标位于缓冲区起始,该函数返回 t。若启用了缩进限制,则指文本可访问部分的起始。另请参阅 光标位置 中的 point-min

Function: eobp

若光标位于缓冲区结尾,该函数返回 t。若启用了缩进限制,则指文本可访问部分的结尾。另请参阅 See 光标位置 中的 point-max

Function: bolp

若光标位于行首,该函数返回 t。See 按文本行移动。缓冲区(或其可访问部分)的起始始终视为行首。

Function: eolp

若光标位于行尾,该函数返回 t。缓冲区(或其可访问部分)的结尾始终视为行尾。