想问一下,在一个 buffer 中遍历第一行到最后一行的循环应该如何写

你应该是问了一个 XY 问题。

image

你真正的问题 X,#6 楼已经给了答案。

看了你实现 Y 的方式,我觉得也有必要回答一下:

(progn
  (beginning-of-buffer)
  ;; 用 `while` + `re-search-forward` 循环查找,
  ;; 用 `match-beginning` / `match-end` 确定匹配目标的边界。
  (while (re-search-forward "blove" nil t)
    (let ((ov (make-overlay (match-beginning 0) (match-end 0))))
      (overlay-put ov 'face 'blove-rg-match-hl-face))))
1 个赞