如何查找并删除以文本 in
开头的行?
我使用命令 C-M-s ^in
查找所有以 in
开头的行,但之后我不知道该怎么做。
M-x flush-lines RET ^in RET
C-h f flush-lines
告诉您:
flush-lines
是一个交互式的编译过的Lisp函数,在replace.el
中。它绑定在
menu-bar edit flush-lines
上。
(flush-lines REGEXP &optional RSTART REND INTERACTIVE)
删除包含与
REGEXP
匹配的内容的行。当从Lisp中调用时(通常也是交互式调用时,参见下文),适用于点之后的缓冲区部分。 当且仅当该行包含从点之后开始的正则表达式匹配项时,才会删除。
如果
REGEXP
包含大写字符(除了那些前面有反斜杠\
的字符)且search-upper-case
为非nil,则匹配区分大小写。第二个和第三个参数
RSTART
和REND
指定要操作的区域。 如果某行仅包含完全包含在此区域中的匹配项,则删除该行的一部分。以交互方式,在瞬态标记模式下,当标记处于活动状态时,对区域的内容进行操作。 否则,从点到缓冲区(可访问部分)的末尾进行操作。 当从Lisp调用此函数时,可以通过传递非nil的
INTERACTIVE
参数来假装它是交互式调用。如果匹配跨越多行,则删除所有其所在的行。 在查找下一个匹配项之前删除它们。 因此,在同一行上开始的匹配与另一个匹配结束的位置相同的匹配将被忽略。
运行query-replace-regexp命令并将"in.*"替换为空字符串是可行的。但是请不要在提示框中输入" to"。
C-SPC
在光标处设置一个标记。然后使用M-<
前往 bob。然后清除缓存。最后使用C-u C-SPC
返回到原来的位置。 - DrewM-:(flush-lines REGEXP nil (buffer-size) t)
来实现,其中REGEXP
是您要匹配的正则表达式。 - Drew