(TIL)Emacs 中综合使用 keep-lines 和 flush-lines 过滤多行文本

如果不想写正则表达式,可以多次使用 keep-lines 和 flush-lines 来达到筛选包含某些关键字的文本行。

keep-lines 的意思是,保留你输入关键字的文本行。

flush-lines 的意思是,排除你输入关键字的文本行。

由于这两个命令,运行之后会直接修改文本内容,因此不要直接用于正在使用的业务文件中。

这两个都是 Emacs 内置的命令。

7 个赞

感谢分享。我一般也会用 occur 来做过滤行。 C-u occur 则会只保留匹配的文本,而不是整行。

occur 不会修改当前 buffer 而是会创建一个单独的 buffer。
也是 Emacs 自带的命令。

可以试试consult-line embark-become flush-lines丝滑小连招

嗯,我也用了 occur,主要是我需要提取我需要的文本行,在 occur 的结果页我不知道将对应结果导出,或者直接复制(如果直接复制的话,还会带上行号,我暂时没找到对应的命令)

哦,没用 consult,不过谢谢推荐

为啥不直接用 consult-keep-lines 呢?

当初想出这一套连招的时候,我想做的事是flush-lines。而这个函数它名字是consult-keep-lines,于是被忽略了。

要不是有人告诉我embark-become,我差点就去自己实现一个embark-become了……

1 个赞