list-match-lines 能不能同时列出上下几行,看不到上下文有点尴尬。

RT 或者有其他的包可以满足类似的功能,

另外,怎么同时匹配两个单词,即 同时列出匹配 worda 或者 匹配 wordb 的行

  1. 得自己匹配 \n,用 C-q C-j 输入
  2. worda\|wordb

Searching and Editing in Buffers with Occur Mode 这篇文章中提到的 Occur Mode 应该符合你的需求。

操作步骤和配置

;; M-s o 或者 M-x occur 启动 Occur-mode
;; 在 Occur buffer 中按 C-c C-f 开启 next-error-follow-mirror-mode
;; 在 Occur buffer 中使用 M-p/M-n 切换上一个/下一个匹配项目

;; 配置在 Occur Buffer 中展示匹配项的前后 1 行
(setq list-matching-lines-default-context-lines 1)

效果展示

查询当前 Buffer 中 含有 fzf 或者 dead 关键字的行(使用 fzf\|dead 表示 查询)。

未设置 list-matching-lines-default-context-lines

设置 list-matching-lines-default-context-lines 为 1

1 个赞

补充一下, 只是偶尔需要展示前后行, 不用设置 list-matching-lines-default-context-lines 也可以. occur 命令的第二个参数(即展示前后行的行数)可以使用前置参数 C-u 输入.

C-u 1 M-s-o worda|wordb 展示匹配行与前后一行

3 个赞