Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Find first line FOLLOWING a sequence of matches

12 views
Skip to first unread message

Subhan Michael Tindall

unread,
Apr 28, 2015, 12:54:28 PM4/28/15
to help-gn...@gnu.org
Table like this: (abbreviated)
|a|b|c|
|a|d|e|
|a|z||
|m|b|c|
|m|c|d|
|ab|c|d|
First col is relevant (actual table is MUCH bigger)

I'm looking to write a macro to convert this table (on an occasionally recurring basis)
To something like:
,* a
|a|b|c|
|a|d|e|
|a|z||
,* m
|m|b|c|
|m|c|d|
,* ab
|ab|c|d|

The entries in first column are always strings of characters, no internal whitespace
Looking for a way to search for the LAST match for a given element
With that I should be able to macro-ize my keystrokes and save some time, or better yet come up with something to fully process the file

EG:
Insert ,* a header
Search for a in column 1
Find the last a in the block
Move down a line
Copy m & insert ,* m header
Search for m in column 1
<repeat>

Thousands of lines, hundreds of blocks, don't make me export this to excel and do it there!





This message is intended for the sole use of the individual and entity to which it is addressed and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not the intended addressee, nor authorized to receive for the intended addressee, you are hereby notified that you may not use, copy, disclose or distribute to anyone the message or any information contained in the message. If you have received this message in error, please immediately advise the sender by reply email and delete the message. Thank you.

Rusi

unread,
Apr 28, 2015, 11:01:18 PM4/28/15
to
org or more specifically orgtbl should be able to do this.
Maybe ask on the org mailing list?

Bob Proulx

unread,
Apr 29, 2015, 12:37:08 AM4/29/15
to help-gn...@gnu.org
Subhan Michael Tindall wrote:
> Looking for a way to search for the LAST match for a given element

As a quick hint looking for the last item is the same as a
search backward from the bottom up. The last item is the first one
found in reverse. Does that help?

> With that I should be able to macro-ize my keystrokes and save some
> time, or better yet come up with something to fully process the file
>
> EG:
> Insert ,* a header
> Search for a in column 1
> Find the last a in the block

Jump to the bottom of the file. Search upward with one of the search
backward commands. Perhaps search-backward-regexp? That will locate
the last item. Then move to the beginning of line. Then next line.
That should do what you need.

> Move down a line
> Copy m & insert ,* m header
> Search for m in column 1
> <repeat>

Seems like you should be able to macro-ize that process easily.

Bob

> This message is intended for the sole use of the individual and
> entity to which it is addressed and may contain information that is
> privileged, confidential and exempt from disclosure under applicable
> law. If you are not the intended addressee, nor authorized to
> receive for the intended addressee, you are hereby notified that you
> may not use, copy, disclose or distribute to anyone the message or
> any information contained in the message. If you have received this
> message in error, please immediately advise the sender by reply
> email and delete the message. Thank you.

READ CAREFULLY. By reading this email, you agree, on behalf of your
employer, to release me from all obligations and waivers arising from
any and all NON-NEGOTIATED agreements, licences, terms-of-service,
shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure,
non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I
have entered into with your employer, its partners, licensors, agents
and assigns, in perpetuity, without prejudice to my ongoing rights and
privileges. You further represent that you have the authority to
release me from any BOGUS AGREEMENTS on behalf of your employer.

Rusi

unread,
Apr 29, 2015, 1:37:08 AM4/29/15
to
Some part of the puzzle I had worked out here
https://mail.python.org/pipermail/python-list/2013-September/666040.html

Some more details will need to be worked out

Robert Thorpe

unread,
Apr 29, 2015, 3:03:37 PM4/29/15
to Bob Proulx, help-gn...@gnu.org
Bob Proulx <b...@proulx.com> writes:

> Subhan Michael Tindall wrote:
...
>> This message is intended for the sole use of the individual and
>> entity to which it is addressed and may contain information that is
>> privileged, confidential and exempt from disclosure under applicable
>> law. If you are not the intended addressee, nor authorized to
>> receive for the intended addressee, you are hereby notified that you
>> may not use, copy, disclose or distribute to anyone the message or
>> any information contained in the message. If you have received this
>> message in error, please immediately advise the sender by reply
>> email and delete the message. Thank you.
>
> READ CAREFULLY. By reading this email, you agree, on behalf of your
> employer, to release me from all obligations and waivers arising from

I don't think there is anything to worry about here.

Read what it says in the second sentence:
> If you are not the intended addressee, nor authorized to
> receive for the intended addressee, you are hereby notified that you
> may not use, copy, disclose or distribute to anyone the message or
> any information contained in the message.

This paragragh that Subhan Michael Tindall added to the end of the email
is only directed at people who are not the intended addressee.
E.g. people who have read the email by sniffing a plain-test network
connection, or have read it by opening someone else's mail archive.

The third sentence is simply a request.

I'm not a lawyer, but I'd say it's fairly harmless.

BR,
Robert Thorpe

Bob Proulx

unread,
Apr 30, 2015, 2:37:43 AM4/30/15
to help-gn...@gnu.org
Robert Thorpe wrote:
> Bob Proulx writes:
> > Subhan Michael Tindall wrote:
> >> This message is intended for the sole use of the individual and
> >> entity to which it is addressed and may contain information that is
> >
> > READ CAREFULLY. By reading this email, you agree, on behalf of your
> > employer, to release me from all obligations and waivers arising from
>
> I don't think there is anything to worry about here.

Were you worried? I wasn't worried. I was annoyed by the clueless
and useless email disclaimer. Those are such a waste of space. We
shouldn't even be giving it any discussion time.

If someone's company forces that upon their email then out of common
decency they should use different email when interacting with the
public outside of their company business. There are many free email
providers available that won't abuse the users in that way.

Here is one of many classic references on the topic. There are many more.

http://web.archive.org/web/20060218213021/http://www.goldmark.org/jeff/stupid-disclaimers/

> Read what it says in the second sentence:
> > If you are not the intended addressee, nor authorized to
> > receive for the intended addressee, you are hereby notified that you
> > may not use, copy, disclose or distribute to anyone the message or
> > any information contained in the message.
>
> This paragragh that Subhan Michael Tindall added to the end of the email

Probably his company's mail server added it to the bottom of his mail
for him. That is the usual cause of those disclaimers. Of course it
was sent to a public mailing list that has many archivers. Basically
the modern day equivalent of publishing it in a newspaper with world
wide readership.

> is only directed at people who are not the intended addressee.
> E.g. people who have read the email by sniffing a plain-test network
> connection, or have read it by opening someone else's mail archive.
>
> The third sentence is simply a request.
>
> I'm not a lawyer, but I'd say it's fairly harmless.

I disagree. Clueless useless disclaimers such as those do harm the
community. They are rude. They are completely insane. They consume
bandwidth and for those who pay metered bandwidth it does actually
cost them more money. They consume diskspace and waste our time
avoiding reading them. Think of the kittens!

The standard etiquette is that email may contain few lines of
signature only. The accepted guideline is no more than four lines.
See RFC 1855 for example.

When I am annoyed by stupid email disclaimers I add a disclaimer of my
own. Which is what I did on the previous message. That one comes
from the writer Cory Doctorow. It is called the reasonable
disclaimer. At least it is reasonable.

Bob

Disclaimer:
By sending an email to ANY of my addresses you are agreeing that:
I am by definition, "the intended recipient".
All information in the email is mine to do with as I see fit and make
such financial profit, political mileage, or good joke as it lends
itself to. In particular, I may quote it on the net.
I may take the contents as representing the views of your company.
This overrides any disclaimer or statement of confidentiality that may
be included on your message.
Unless you are named "Arnold P. Fasnock", you may read only the "odd
numbered words" (every other word beginning with the first) of the
message above. If you have violated that, then you hereby owe the
sender 10 GBP for each even numbered word you have read.
If you feel you have received this message in error then add two cups
flour, 1/3rd cup butter, 1/3rd cup yogurt, 1/2 cup sugar, 2 eggs, 1
teaspoon baking soda, pinch of salt, mix in three very ripe bananas
plus walnuts to taste and bake at 350F for one hour.

Subhan Michael Tindall

unread,
Apr 30, 2015, 12:20:20 PM4/30/15
to Bob Proulx, help-gn...@gnu.org
It may be clueless and useless, but it is required by my employer that it be attached to ALL my outgoing emails. I work for a company where we deal with a great deal of HIPPA protected info and protected health information, and I could literally be terminated for removing it from my email before hitting send.

Robert Thorpe

unread,
Apr 30, 2015, 2:42:12 PM4/30/15
to Bob Proulx, help-gn...@gnu.org
I'm going to write one more message about this because this of off-topic
for help-gnu-emacs.

Bob Proulx <b...@proulx.com> writes:
> Were you worried? I wasn't worried. I was annoyed by the clueless
> and useless email disclaimer. Those are such a waste of space. We
> shouldn't even be giving it any discussion time.
>
> If someone's company forces that upon their email then out of common
> decency they should use different email when interacting with the
> public outside of their company business. There are many free email
> providers available that won't abuse the users in that way.

Why? It's just some more text to ignore. It would make a bigger
difference to me if people wrote simpler messages.

> Here is one of many classic references on the topic. There are many more.
>
> http://web.archive.org/web/20060218213021/http://www.goldmark.org/jeff/stupid-disclaimers/

In that webpage the author quotes one source of law advice:
weblaw.co.uk. That site actually *recommends* using disclaimers and he
quotes it:

# The value of disclaimers is limited, since the courts normally attach
# more weight to the substantive content of the communication and the
# circumstances in which it is made than to any disclaimer. Having said
# that, disclaimers may possibly be helpful if an issue ends up in court
# in various respects such as those described below and, since disclaimers
# cost (almost) nothing, it is worthwhile to use them. Even though their
# effectiveness in court is doubtful, they may provide a useful argument
# in negotiations to resolve a dispute.

> I disagree. Clueless useless disclaimers such as those do harm the
> community. They are rude. They are completely insane. They consume
> bandwidth and for those who pay metered bandwidth it does actually
> cost them more money. They consume diskspace and waste our time
> avoiding reading them. Think of the kittens!

In the modern world those are all very small problems.

IANAL, but I don't think much of Cory Doctorow's disclaimer. The
disclaimer tries to limit my actions, it can't do that. However, the
disclaimer that Subhan quotes can. The message that Subhan sent is his
copyright. He can request you don't do things with his email.

I don't use these disclaimers, but I understand why others do. Let's
say you're a salesman, for example, and you send a quote to a customer.
That customer decides to send the quote to a competitor of yours. If
you find that out, is there anything you can do? In that case you'd
probably have a better day in court if the email specifically said that
the information in the message couldn't be copied. At least that way
the customer couldn't argue that you meant it to be circulated.

I think your irritation is directed at the wrong people. The real
problem here is that the law should be different. For example, it would
make more sense if a company employee does not "speak for" their
employer. Then things could be done the other way around, Spokesmen
could put "This message relays an official policy of FooCorp".

BR,
Robert Thorpe

Bob Proulx

unread,
Apr 30, 2015, 4:39:37 PM4/30/15
to help-gn...@gnu.org
Subhan Michael Tindall wrote:
> It may be clueless and useless, but it is required by my employer
> that it be attached to ALL my outgoing emails. I work for a company
> where we deal with a great deal of HIPPA protected info and
> protected health information, and I could literally be terminated
> for removing it from my email before hitting send.

No one doubts that it is your employer that is requiring the
disclaimer. When you are using your company resources you are
restricted by your company policies as a matter of your employment
contract. I tried to make that clear in my responses that it was your
employer.

I do strongly recommend using a different email provider for
interacting with people outside of your company business. There are
many free email providers along with other good subscription based
ones. I recommend a subscription based one because then at least the
revenue model is known and they have incentive to work for you not
them. The free ones make their revenue by selling you as their
product.

But let me be clear about something that is a very important fact of
life on the net. There is no delete button on the Internet! If
someone sends a message to a public mailing list it matters not what
type of disclaimer they had attached to the message. It is as a
practical matter impossible to delete it from all of the archives of
the message. People often try. But doing so only calls more
attention to it. This is the well known Barbara Streisand effect.

http://en.wikipedia.org/wiki/Streisand_effect

John Oliver did an excellent show about this problem as well. Here is
a direct link to the the particular part of the show.

https://www.youtube.com/watch?v=r-ERajkMXw0&t=4m30s

I do find those disclaimers annoying and therefore I poke fun at them
by adding back a disclaimer on my messages when I reply. Most people
understand the humor of it. One disclaimer begets another disclaimer.
I only do this when I am making an actual response to the message. If
I have nothing to add then I simply let it go and say nothing. But if
I am responding then I will go ahead and poke fun and add back a
disclaimer of my own. That is my way of protesting them.

Bob

Bob Proulx

unread,
Apr 30, 2015, 5:17:40 PM4/30/15
to help-gn...@gnu.org
Robert Thorpe wrote:
> I'm going to write one more message about this because this of off-topic
> for help-gnu-emacs.

Me too.

> Bob Proulx <b...@proulx.com> writes:
> > Were you worried? I wasn't worried. I was annoyed by the clueless
> > and useless email disclaimer. Those are such a waste of space. We
> > shouldn't even be giving it any discussion time.
> >
> > If someone's company forces that upon their email then out of common
> > decency they should use different email when interacting with the
> > public outside of their company business. There are many free email
> > providers available that won't abuse the users in that way.
>
> Why? It's just some more text to ignore. It would make a bigger
> difference to me if people wrote simpler messages.

To be clear I responded to a message that included a disclaimer by
including a disclaimer of my own. That was all I did. One disclaimer
begot another disclaimer. In the original if you found the disclaimer
ignorable then my response with another disclaimer should have been
equally worthy of being ignored. Instead we have wasted much time
discussing the topic at more length than it deserves.

> > Here is one of many classic references on the topic. There are many more.
> >
> > http://web.archive.org/web/20060218213021/http://www.goldmark.org/jeff/stupid-disclaimers/

I don't konw why I found the archive.org URL of that first. I should
have linked to the current copy. My bad. I was trying not to spend
time on it.

> In that webpage the author quotes one source of law advice:
> weblaw.co.uk. That site actually *recommends* using disclaimers and he
> quotes it:
>
> # The value of disclaimers is limited, since the courts normally attach
> # more weight to the substantive content of the communication and the
> # circumstances in which it is made than to any disclaimer. Having said
> # that, disclaimers may possibly be helpful if an issue ends up in court
> # in various respects such as those described below and, since disclaimers
> # cost (almost) nothing, it is worthwhile to use them. Even though their
> # effectiveness in court is doubtful, they may provide a useful argument
> # in negotiations to resolve a dispute.

Yes. I thought it was a good reference specifically because it did
include discussion on both sides of the issue. However I think in
total the points against far outweigh the points for.

> > I disagree. Clueless useless disclaimers such as those do harm the
> > community. They are rude. They are completely insane. They consume
> > bandwidth and for those who pay metered bandwidth it does actually
> > cost them more money. They consume diskspace and waste our time
> > avoiding reading them. Think of the kittens!
>
> In the modern world those are all very small problems.

I completely agree. The problem is down at the level where I might
include my own disclaimer if I am already responding to the message.

> IANAL, but I don't think much of Cory Doctorow's disclaimer. The
> disclaimer tries to limit my actions, it can't do that.

Agreed. It can't. That is what makes those so crazy. And why the
annoy me.

> However, the disclaimer that Subhan quotes can.

No it can't. Sorry but it just doesn't work that way.

> The message that Subhan sent is his copyright. He can request you
> don't do things with his email.

No. He can't. He sent his message to a publicly archived mailing
list. That message is forever part of the archives of the Internet.
And also I will note completely outside of any control of mine. I
have no effect on the hundreds of email archives around the net. It
was sent to me, and to hundreds of other recipients, without our
request or consent. It matters not what disclaimer tries to restrict
this. As a practical matter it has been done and it would be
extremely difficult to undo.

To actually delete messages one would need to break into hundreds of
computer systems across the world and delete the message from those
archives without the admins knowing. (Which would itself be a crime.)
Because if they knew they would retrieve the deleted files from their
backups. Unless you could also delete it from their backups too.
Very hard to do.

Or you would need to convince all of the hundreds to delete it
voluntarily. The odds of doing that are vanishly small. And it would
also bring into being the Streisand Effect previously noted.

> I don't use these disclaimers, but I understand why others do.

I understand why others use these too. It is because they are
mistaken. It is really just that simple. (And I realize that in
reverse they believe that I am mistaken too. It is a symetrical
relationship.)

> Let's say you're a salesman, for example, and you send a quote to a
> customer. That customer decides to send the quote to a competitor
> of yours. If you find that out, is there anything you can do?

If that salesman sent the quote to a publicly archived mailing list
with hundreds of recipients then there is absolutely nothing they can
do. Disclaimer or not.

> In that case you'd probably have a better day in court if the email
> specifically said that the information in the message couldn't be
> copied. At least that way the customer couldn't argue that you
> meant it to be circulated.

You are conflating public messages sent to a public mailing list with
some type of contractual communication between companies. Those two
things are not related. They are apples and oranges.

> I think your irritation is directed at the wrong people. The real
> problem here is that the law should be different.

IANAL either but the law is already different. We can agree to
disagree on that point. It's okay. Lawyers do it all of the time.
That is what lawyers do.

> For example, it would make more sense if a company employee does not
> "speak for" their employer. Then things could be done the other way
> around, Spokesmen could put "This message relays an official policy
> of FooCorp".

Currently there is already the humorous situation of things like press
releases meant to be official statements which come with an attached
disclaimer saying that the email is not an official statement. :-)

Bob

Bob Proulx

unread,
Apr 30, 2015, 5:21:34 PM4/30/15
to help-gn...@gnu.org
Bob Proulx wrote:
> Jump to the bottom of the file. Search upward with one of the search
> backward commands. Perhaps search-backward-regexp? That will locate
> the last item. Then move to the beginning of line. Then next line.
> That should do what you need.

To put this thread back on track let me ask if this works for you or
not? Does that technique of search upward from the bottom do the
trick? Or is there something else?

Bob

Subhan Michael Tindall

unread,
Apr 30, 2015, 5:56:27 PM4/30/15
to Bob Proulx, help-gn...@gnu.org
I need to futz with it some more, hopefully tomorrow.
But, one issue that I'm having is that using C-w to yank word at point doesn't cross punctuation, so I can't use c-w to grab the word at point into the search buffer (which would be quick & easy.
IE zipc^odes_hold
Pt here
C-w pulls zipcodes, not zipcodes_hold
If there's a way I can define words to only be bounded by whitespace I should be able to whip up a keyboard macro for the rest I believe.
Subhan


> -----Original Message-----
> From: help-gnu-emacs-bounces+subhant=familyca...@gnu.org
> [mailto:help-gnu-emacs-bounces+subhant=familyca...@gnu.org] On
> Behalf Of Bob Proulx
> Sent: Thursday, April 30, 2015 2:21 PM
> To: help-gn...@gnu.org
> Subject: Re: Find first line FOLLOWING a sequence of matches
>

to...@tuxteam.de

unread,
May 1, 2015, 10:57:23 AM5/1/15
to Subhan Michael Tindall, help-gn...@gnu.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, Apr 28, 2015 at 04:53:58PM +0000, Subhan Michael Tindall wrote:
> Table like this: (abbreviated)
> |a|b|c|
> |a|d|e|
> |a|z||
> |m|b|c|
> |m|c|d|
> |ab|c|d|

Here's a little Emacs Lisp snippet to get you started:

(defun my-segmentize-table ()
(interactive)
(let ((curr-fc nil)) ;; current first col
(while (looking-at "^|\\([^|]*\\)")
(let ((fc (match-string 1)))
(unless (equal fc curr-fc)
;; we are at the start of a line with a "new" first column
(insert (format ",* %s\n" fc))
(setq curr-fc fc)))
;; advance one line:
(beginning-of-line 2))))

Season to taste :-)

If you don't know what to do with it, here are some instructions:

- Paste into a spare buffer (the *scratch* buffer is fine for that)
- Evaluate the whole thing by going to its end and keying C-x C-e
(aka "eval-last-sexp"). Now your Emacs should know a new command
"my-segmentize-table"
- Go to the first line of the table you want to transform
- Type there "M-x my-segmentize-table"

Make first a backup of your valuable buffers ;-)

Enjoy
- -- t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAlVDlEAACgkQBcgs9XrR2kbFMQCdFbGodLScRS87XFBc8JT6rQTl
UI4An24LpRgeyjZ8gOPwCQSGEqbyOsKI
=HDE1
-----END PGP SIGNATURE-----

Thien-Thi Nguyen

unread,
May 1, 2015, 2:14:15 PM5/1/15
to help-gn...@gnu.org
() Subhan Michael Tindall <Sub...@familycareinc.org>
() Thu, 30 Apr 2015 21:55:59 +0000

I need to futz with it some more, hopefully tomorrow.
But, one issue that I'm having is that using C-w to yank word at point doesn't cross punctuation, so I can't use c-w to grab the word at point into the search buffer (which would be quick & easy.
IE zipc^odes_hold
Pt here
C-w pulls zipcodes, not zipcodes_hold

If there's a way I can define words to only be bounded by
whitespace I should be able to whip up a keyboard macro for
the rest I believe.

You can approach it from the other side. In that buffer, try:

M-: (modify-syntax-entry ?_ "w") RET

This changes the syntax entry for the underscore character to
"word constituent". To examine syntax (and other) info on any
character, move point to it and type ‘C-u C-x =’. That might be
a good idea if you want to change things back, later. :-D

--
Thien-Thi Nguyen -----------------------------------------------
(if you're human and you know it) read my lisp:
(defun responsep (type via)
(case type
(technical (eq 'mailing-list via))
...))
---------------------------------------------- GPG key: 4C807502
signature.asc

Bob Proulx

unread,
May 1, 2015, 3:31:05 PM5/1/15
to help-gn...@gnu.org
Subhan Michael Tindall wrote:
> I need to futz with it some more, hopefully tomorrow.
> But, one issue that I'm having is that using C-w to yank word at
> point doesn't cross punctuation, so I can't use c-w to grab the word

Is it really C-w kill-region not yank word? The description confuses
me a little so not really sure exactly what you need there.

The suggestions about changing the syntax table to include punctuation
in words seems like a good possibility. Especially if trying to M-@
mark-word or M-d kill-word which operate on words. The disadvantage
is that one may like the previous definition for other things.

I also like the emacs-lisp snippet since I think this might be an
operation you will be doing periodically? If so then writing a small
program in elisp to do the task will pay back rewards many times in
the future. Especially when things become more complicated having a
real program can be better than brute forcing through with the keyboard.

But let me say a few words about emacs and creating a keyboard macro.
It can do what you want. This is how I would do it. Everyone will
edit the file differently. This is simply one example way.

I would always search for the field separators. I would move the
point to the next separator either forward or backward. That will
leave the mark behind at the previous point location. When editing I
would then use C-x C-x to exchange-point-and-mark to show the region
between. (I eschew transient-mark-mode but I assume all new users are
using it. In which case the region will be highlighted.) Once the
region has been established then I would M-w kill-ring-save will copy
it to the kill ring. (Or alternatively simply kill and yank to the
same effect with C-w C-y (kill-region, yank) which is the same on a
modified buffer.) M-w copies the region to the kill ring.

By searching for the field separator it avoids differences in the
field holding one word or two words or zero or more.

You had previously said:
Table like this: (abbreviated)
|a|b|c|
|a|d|e|
|a|z||
|m|b|c|
|m|c|d|
|ab|c|d|

I'm looking to write a macro to convert this table (on an
occasionally recurring basis)
To something like:
,* a
|a|b|c|
|a|d|e|
|a|z||
,* m
|m|b|c|
|m|c|d|
,* ab
|ab|c|d|

Can do. Grab the first field to use for the new header.

C-f C-s | C-b M-w

The first field is now in the kill ring. Build your header using it.

C-a C-o ,* C-y C-f

I am going to search for it using regular expressions C-u C-r. I need
it for the '^' to anchor to the start of the line and not at other
field locations. C-r is a non-RE search. C-u C-r is an RE search.

M->
C-u C-r ^| C-y |
C-a C-n

Jump to the bottom of the file and search upward using a regular
expression search. Anchor to the start of the line. Look for the
separator. Yank in the saved pattern. Separator. That leaves you
just to the right of the first field. The point will be sitting at
the first position of the second field.

Then C-a move-beginning-of-line. Then C-n for next line. Maybe at
that point you will be on the next line. Maybe. Maybe not. It
depends. Grr... Another peeve of mine.

This is tricky due to the new emacs default of visual line mode. Up
until recently next-line always took you to the next line. But in
recent emacs the default is now visual line mode. I eschew
line-move-visual for exactly the reason that next-line no longer takes
you to the next line. Now with line-move-visual set it depends upon
line length and window length. (The end condition also depends upon
the value of next-line-add-newlines too.) If you have the new default
value and the line is longer than your display and wraps then C-n
won't put the point on the next line. It will put it somewhere in the
wrapped area. I can only suggest (setq line-move-visual nil) to
return to a sane state. Others obviously disagree with me. I can
only note it here and you must deal with the behavior there.

Having the point now on the next line where you want to start a new
header. Terminate the macro. Call the macro. It should repeat.

That should have you with a manual way to macro out an edit to add
those headers to the table that you wanted to add. It does not depend
upon changing the word character syntax table.

> at point into the search buffer (which would be quick & easy.
> IE zipc^odes_hold
> Pt here
> C-w pulls zipcodes, not zipcodes_hold
> If there's a way I can define words to only be bounded by whitespace
> I should be able to whip up a keyboard macro for the rest I
> believe.

Changing the word characters will work too. There is more than one
way to do it. I prefer to search for the separator instead of
counting on there being a certain type of field. Different
(key)strokes for different folks.

Bob

0 new messages