Emacs:如何删除以特定文本开头的行

MAX*_*RIC 4 emacs search replace

如何查找和删除以文本开头的行in

我使用命令C-M-s ^in查找以开头的所有行in,但随后我真的不知道该怎么办。

Dre*_*rew 6

M-x flush-lines RET ^in RET

C-h f flush-lines 告诉你:

flush-lines是Windows中的交互式已编译Lisp函数replace.el

它必然menu-bar edit flush-lines

(flush-lines REGEXP &optional RSTART REND INTERACTIVE)

删除包含匹配项的行REGEXP

从Lisp调用时(通常也以交互方式调用,请参见下文),适用于point之后的缓冲区部分。当且仅当行中的线点包含从点后开始的正则表达式匹配项时,才会删除该点。

如果REGEXP包含大写字符(不包括以开头的字符\)并且不search-upper-casenil,则匹配区分大小写。

第二和第三个arg RSTARTREND指定要操作的区域。当且仅当它们包含完全包含在该区域中的匹配项时,才会删除此区域中部分包含的行。

以交互方式,当标记处于活动状态时,在瞬态标记模式下,对区域的内容进行操作。否则,从点到缓冲区(可访问部分)的末尾进行操作。从Lisp调用此函数时,可以通过传递非nil INTERACTIVE参数来假装以交互方式调用它。

如果将匹配项分成多行,则会删除其所在的所有行。寻找下一个匹配项之前,将其删除。因此,在同一行开始的匹配将在另一行结束时被忽略。

  • @phils:是的。记住它们,或者稍后通过它们的别名重新发现它们可能会有所帮助:`delete-matching-lines`和`delete-non-matching-lines`。 (3认同)