你应该是问了一个 XY 问题。
你真正的问题 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))))