From: David <de_bb@arcor.de>
To: help-gnu-emacs@gnu.org
Subject: Re: How to automatically increment an index array
Date: Fri, 27 Jun 2008 10:47:39 +0200 [thread overview]
Message-ID: <kz63rvl0wk.fsf@kafka.physik3.gwdg.de> (raw)
In-Reply-To: 38b2ab8a0806260045o100d1237iff3c6289775e5131@mail.gmail.com
"Francis Moreau" <francis.moro@gmail.com> writes:
> I have this problem: in a buffer, *scratch* for example I have:
>
> [8735b450] = xxx,
> [0x15] = xxx,
> [0x16] = xxx,
> [0x17] = xxx,
> [0x18] = xxx,
> [0x19] = xxx,
> [0x1a] = xxx,
> [0x1b] = xxx,
>
> After running a 'magic' command I'd like to calculate the new array indexes
> as follow:
>
> [8735b450] = xxx,
> [8735b454] = xxx,
> [8735b458] = xxx,
> [8735b45c] = xxx,
> [8735b460] = xxx,
> [8735b464] = xxx,
> [8735b468] = xxx,
> [8735b46c] = xxx,
> ...
>
> Can anybody give me a hint ?
There are already some very nice suggestions on this thread, but one
problem here is that the hex numbers will at least on 32bit systems be
too large for Emacs to handle (just do C-h v most-positive-fixnum RET).
Since these replacement problems one encounters while programming are
often slightly different, I usually use keyboard macros instead of fixed
functions to tackle them. For the above example, I'd do:
C-x C-k C-f %x RET (set macro counter *f*ormat to hex)
C-x C-k C-c #xb454 RET (set initial macro *c*ounter value)
now go to the line [0x15] and set the cursor on the zero. Then
C-x (
DEL DEL DEL DEL (delete existing number)
8 7 3 5
C-x C-k C-i (*i*nsert macro counter, incrementing it by 1)
C-x C-k C-a 3 RET (*a*dd another 3)
(... move cursor the next line and again on the zero ...)
C-x ) (end macro)
Now you can just do `C-x e' and repeatedly press `e' to replace the next
lines. Maybe this is a bit confusing when doing this the first time, but
you get quickly used to it.
Note that you need Emacs 22 for using the macro counter. For older
Emacsen, use registers instead.
-David
next prev parent reply other threads:[~2008-06-27 8:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-26 7:45 How to automatically increment an index array Francis Moreau
2008-06-26 12:51 ` Peter Dyballa
2008-06-27 8:47 ` David [this message]
[not found] <mailman.13859.1214468323.18990.help-gnu-emacs@gnu.org>
2008-06-26 11:47 ` Rupert Swarbrick
2008-06-26 11:52 ` Rupert Swarbrick
2008-06-27 2:44 ` Xah
2008-06-27 6:50 ` David Kastrup
2008-06-27 7:52 ` Thien-Thi Nguyen
[not found] ` <mailman.13886.1214553354.18990.help-gnu-emacs@gnu.org>
2008-06-27 8:19 ` David Kastrup
2008-06-27 7:23 ` Klaus Zeitler
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=kz63rvl0wk.fsf@kafka.physik3.gwdg.de \
--to=de_bb@arcor.de \
--cc=help-gnu-emacs@gnu.org \
/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).