From: "Parker, Matthew" <MParker@seic.com>
To: "Bourgneuf Francois" <francois.bourgneuf@groupe-mma.fr>,
"Chris Patterson" <ubermuse@gmail.com>, <help-gnu-emacs@gnu.org>
Subject: RE: Remove all lines containig a keyword
Date: Fri, 3 Oct 2008 10:06:49 -0400 [thread overview]
Message-ID: <9E067A1AECCB154485D4CF7E4BEF4D8E0A154A8C@post07.corp.seic.com> (raw)
In-Reply-To: <9884393F63F8AF4EA99527DC3C9141E22DD51C@zw67246c.societe.mma.fr>
Hide-lines.el is also useful
http://www.emacswiki.org/cgi-bin/wiki/hide-lines.el
from the commentary...
;; Now, when you type C-c h, you will be prompted for a regexp
;; (regular expression). All lines matching this regexp will be
;; hidden in the buffer.
;;
;; Alternatively, you can type C-u C-c h (ie. provide a prefix
;; argument to the hide-lines command) to hide all lines that *do not*
;; match the specified regexp.
;;
;; If you want to make all of the hidden areas re-appear again, type:
;; M-x show-all-invisible
;; Or you can bind show-all-invisible to a key and use that to show
;; all the hidden areas again.
And from the emacs manual...
20.10 Other Search-and-Loop Commands
====================================
Here are some other commands that find matches for a regular
expression. They all ignore case in matching, if the pattern contains
no upper-case letters and `case-fold-search' is non-`nil'. Aside from
`occur' and its variants, all operate on the text from point to the end
of the buffer, or on the active region in Transient Mark mode.
`M-x occur <RET> REGEXP <RET>'
Display a list showing each line in the buffer that contains a
match for REGEXP. To limit the search to part of the buffer,
narrow to that part (*note Narrowing::). A numeric argument N
specifies that N lines of context are to be displayed before and
after each matching line. Currently, `occur' can not correctly
handle multiline matches.
The buffer `*Occur*' containing the output serves as a menu for
finding the occurrences in their original context. Click
`Mouse-2' on an occurrence listed in `*Occur*', or position point
there and type <RET>; this switches to the buffer that was
searched and moves point to the original of the chosen occurrence.
`o' and `C-o' display the match in another window; `C-o' does not
select it.
After using `M-x occur', you can use `next-error' to visit the
occurrences found, one by one. *Note Compilation Mode::.
`M-x list-matching-lines'
Synonym for `M-x occur'.
`M-x multi-occur <RET> BUFFERS <RET> REGEXP <RET>'
This function is just like `occur', except it is able to search
through multiple buffers. It asks you to specify the buffer names
one by one.
`M-x multi-occur-in-matching-buffers <RET> BUFREGEXP <RET> REGEXP <RET>'
This function is similar to `multi-occur', except the buffers to
search are specified by a regular expression that matches visited
file names. With a prefix argument, it uses the regular
expression to match buffer names instead.
`M-x how-many <RET> REGEXP <RET>'
Print the number of matches for REGEXP that exist in the buffer
after point. In Transient Mark mode, if the region is active, the
command operates on the region instead.
`M-x flush-lines <RET> REGEXP <RET>'
This command deletes each line that contains a match for REGEXP,
operating on the text after point; it deletes the current line if
it contains a match starting after point. In Transient Mark mode,
if the region is active, the command operates on the region
instead; it deletes a line partially contained in the region if it
contains a match entirely contained in the region.
If a match is split across lines, `flush-lines' deletes all those
lines. It deletes the lines before starting to look for the next
match; hence, it ignores a match starting on the same line at which
another match ended.
`M-x keep-lines <RET> REGEXP <RET>'
This command deletes each line that _does not_ contain a match for
REGEXP, operating on the text after point; if point is not at the
beginning of a line, it always keeps the current line. In
Transient Mark mode, if the region is active, the command operates
on the region instead; it never deletes lines that are only
partially contained in the region (a newline that ends a line
counts as part of that line).
If a match is split across lines, this command keeps all those
lines.
Matthew Parker
SEI | 1 Freedom Valley Drive | Oaks, PA 19456 | p: 610-676-1279 | f: 484-676-1279 | www.seic.com
-----Original Message-----
From: help-gnu-emacs-bounces+mparker=seic.com@gnu.org [mailto:help-gnu-emacs-bounces+mparker=seic.com@gnu.org] On Behalf Of Bourgneuf Francois
Sent: Friday, October 03, 2008 9:54 AM
To: Chris Patterson; help-gnu-emacs@gnu.org
Subject: RE: Remove all lines containig a keyword
C-M-% .*sold.*C-q C-j Enter !
I explain :
C-M-% : query-replace-regexp
.*sold.*C-q C-j : 0-n character followed by "sold" followed by 0-n character followed by NEWLINE ( C-q C-j )
Bour9
> -----Message d'origine-----
> De :
> help-gnu-emacs-bounces+francois.bourgneuf=groupe-mma.fr@gnu.or
> g
> [mailto:help-gnu-emacs-bounces+francois.bourgneuf=groupe-mma.f
> r@gnu.org] De la part de Chris Patterson
> Envoyé : lundi 29 septembre 2008 04:46
> À : help-gnu-emacs@gnu.org
> Objet : Re: Remove all lines containig a keyword
>
> Christian Herenz <herenz@physik.hu-berlin.de> writes:
>
> > Hi,
> > I have a huge list of "stuff" I sell / sold.
> > To print out an actual list, without the stuff that is sold already,
> > It would be nice to have a command for doing this task automated -
> > Remove all lines with the keyword "sold".
> > Thanks for your Help,
> > Christian
>
> Looks like you have several suggestions. I'll chime in with M-x
> flush-lines.
>
>
next prev parent reply other threads:[~2008-10-03 14:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-03 13:54 Remove all lines containig a keyword Bourgneuf Francois
2008-10-03 14:06 ` Parker, Matthew [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-09-14 9:08 Christian Herenz
2008-09-14 9:53 ` Davin Pearson
2008-09-14 12:24 ` harven
2008-09-14 15:12 ` Ross A. Laird
2008-09-14 20:42 ` Drew Adams
2008-09-14 15:18 ` Xah
2008-09-14 16:16 ` Marc Tfardy
2008-09-15 19:47 ` Christian Herenz
2008-09-29 2:46 ` Chris Patterson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9E067A1AECCB154485D4CF7E4BEF4D8E0A154A8C@post07.corp.seic.com \
--to=mparker@seic.com \
--cc=francois.bourgneuf@groupe-mma.fr \
--cc=help-gnu-emacs@gnu.org \
--cc=ubermuse@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).