[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How can I enter query-replace in GNU Emacs using a repeatable functi
From: |
Tim Landscheidt |
Subject: |
Re: How can I enter query-replace in GNU Emacs using a repeatable function based on values in the line currently at point. - Super User |
Date: |
Mon, 21 Jun 2010 15:00:19 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Tim Visher <tim.visher@gmail.com> wrote:
> I'd like to take the following data and query-replace occurences of
> each word identifier with the corresponding numeric identifier using
> some sort of repeatable function.
> -1 ACT/CNS
> -2 AG NFC
> -3 AID
> -4 BBG
> -5 BIA
> -6 BLM
> -7 BOC
> -8 BPD
> -9 CCC
> -10 CDC
> -11 Census
> In other words, with point at
> -1 ACT/CNS
> ^
> I'd like to be able to hit a key and launch into the following command
> query-replace RET ACT/CNS RET -1 RET
> [...]
>From my experience, the easiest way to do that is to copy
the lines to a temporary buffer, hack up a small lisplet:
| (dolist (line '(("-1" "ACT/CNS")
| ("-2" "AG NFC")
| ("-3" "AID")
| ("-4" "BBG")
| ("-5" "BIA")
| ("-6" "BLM")
| ("-7" "BOC")
| ("-8" "BPD")
| ("-9" "CCC")
| ("-10" "CDC")
| ("-11" "Census")))
| (query-replace (car line) (cdr line) nil (point-min) (point-max)))
and then evaluate that in the original buffer with M-x :.
While it is possible to create a proper "one-key command"
as you intended, chances are that it is very cumbersome and
that you will have to change it soon afterwards when your
requirements shift just a little bit. Directly programming
in Emacs Lisp is much easier and more flexible.
Tim