help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Reversing lines chunks at a time


From: rgb
Subject: Re: Reversing lines chunks at a time
Date: Wed, 17 Sep 2008 10:14:35 -0700 (PDT)
User-agent: G2/1.0

On Sep 16, 4:07 am, Rupert Swarbrick <rswarbr...@gmail.com> wrote:
> Hi,
>
> I have the following sort of transformation that I have to do fairly
> often. For example, when writing LaTeX code, I might have a line in
> maths mode which looks like
>
>   G_*[n] = G_* \times \Delta^n
>
> (this defines the left hand side to be the Cartesian product of a G with
> a star and a capital delta with a superscript n, for those reading who
> aren't au fait with LaTeX). Anyway, suppose I wanted the product the
> other way round:
>
>   G_*[n] = \Delta^n \times G_*
>
> I'm using Auctex, which is pretty brilliant, but it's syntax table
> breaks at quite a few characters other than whitespace for word
> boundaries. I don't particularly want to change that: it seems
> reasonable, but it means that the transpose-* commands don't really help
> in this case: you end up mangling together bits of the various
> sections.
>
> Moreover, I sometimes don't bother, say, putting a space before the
> \times, which is still perfectly fine LaTeX, but it means that there
> would be no way for Auctex to sensibly see what to do.
>
> At the moment, I do a crazy jumping forward and back, killing and
> yanking, but I suspect there's a better way! Before I started hacking
> elisp, I was wondering whether there was already a neat way to solve
> this sort of problem that I didn't know about?
>
> Many thanks,
>
> Rupert
>
>  application_pgp-signature_part
> < 1KViewDownload

See
http://www.emacswiki.org/cgi-bin/wiki/AnchoredTranspose

It should probably be called swap-regions since that's what it does.

There are several ways to do what you want using it.
Personally I have it mapped to C-x t

In your example you could select the text
G_* \times \Delta^n
C-x t
select    \times
C-x t
Poof it's done

If you prefer you could select
\Delta^n
C-x t
G_*
C-x t
Then it's done too.
The order you select things in isn't important.
It works with secondary selection too.

If I remember correctly by default it ignores white space around your
selection.  IOW you may need to C-u C-x M-t to have it swap correctly
(stop ignoring whitespace).
But if you find yourself needing the C-u behavior you can make this
change.

  (interactive `(,(region-beginning) ,(region-end)
                 ,current-prefix-arg
to
  (interactive `(,(region-beginning) ,(region-end)
                 ,(not current-prefix-arg)

Hmm, maybe the routine needs a cust flag....


reply via email to

[Prev in Thread] Current Thread [Next in Thread]