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: harven
Subject: Re: Reversing lines chunks at a time
Date: Tue, 16 Sep 2008 03:23:05 -0700 (PDT)
User-agent: G2/1.0

On Sep 16, 11: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

You could hack the syntax-table in TeX-mode for the transpose-words
command only. e.g.

(setq my-wacky-syntax-table (copy-syntax-table))
(dolist (char '(?^ ?\ ?* ?_ ?$))
 (modify-syntax-entry char "w" my-wacky-syntax-table))

(add-hook 'TeX-mode-hook (lambda ()
(define-key TeX-mode-map "\M-t"
  '(lambda ()  (interactive)
     (with-syntax-table my-wacky-syntax-table (transpose-words 1)))))


reply via email to

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