MAXIME MLINARIC
MAXIME MLINARIC

Reputation: 87

Emacs: How to delete a line starting with specific text

How can I find and delete lines which start with the text in?

I use the command C-M-s ^in to find all lines starting with in, but then I don't really know what to do.

Upvotes: 8

Views: 4546

Answers (2)

carlos
carlos

Reputation: 346

query-replace-regexp "in.*" to "" will be work. you should not input " to the prompt

Upvotes: 2

Drew
Drew

Reputation: 30698

M-x flush-lines RET ^in RET

C-h f flush-lines tells you:

flush-lines is an interactive compiled Lisp function in replace.el.

It is bound to menu-bar edit flush-lines.

(flush-lines REGEXP &optional RSTART REND INTERACTIVE)

Delete lines containing matches for REGEXP.

When called from Lisp (and usually when called interactively as well, see below), applies to the part of the buffer after point. The line point is in is deleted if and only if it contains a match for regexp starting after point.

If REGEXP contains upper case characters (excluding those preceded by \) and search-upper-case is non-nil, the matching is case-sensitive.

Second and third arg RSTART and REND specify the region to operate on. Lines partially contained in this region are deleted if and only if they contain a match entirely contained in it.

Interactively, in Transient Mark mode when the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of (the accessible portion of) the buffer. When calling this function from Lisp, you can pretend that it was called interactively by passing a non-nil INTERACTIVE argument.

If a match is split across lines, all the lines it lies in are deleted. They are deleted before looking for the next match. Hence, a match starting on the same line at which another match ended is ignored.

Upvotes: 13

Related Questions