[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: how to do this transient mark trick
From: |
Andreas Röhler |
Subject: |
Re: how to do this transient mark trick |
Date: |
Mon, 29 Oct 2007 11:35:21 +0100 |
User-agent: |
KMail/1.9.5 |
Am Montag, 29. Oktober 2007 16:22 schrieb matthias:
> Hi there,
>
> I have
>
> '(transient-mark-mode t)
>
> in my custom-set-variables and for each of the four arrow-keys of my
> keyboard i have a function of the following kind in my .emacs file and i
> bind the according function to the corresponding arrow-key:
>
> (defun set-mark-and-move-point-right ()
> "sets mark if mark is not set and move point one line up"
> (interactive)
> (when (not (region-active-p))
> (call-interactively 'set-mark-command)
> )
> (forward-char 1))
>
> region-active-p looks like that
>
> (defun region-active-p ()
> "Say whether the region is active or not."
> (and (boundp 'transient-mark-mode)
> transient-mark-mode
> (boundp 'mark-active)
> mark-active))
>
> i achieve the desired behavior that the region is activated and
> colorized by transient-mark-mode when i press shift-<some_arrow>.
> However i have the feeling that this is not a clean way to achieve this
> since using these functions I a can also
>
> press shift-<arrow>
> release shift already
> press some <arrow>s and region is still colorized
>
>
> call for help is like this: Can it be done better? Is it possible to
> de-activate the region when shift is released?
>
> thanks for your help.
>
> matthias
AFAIU that's the usual behaviour if
`transient-mark-mode' is on.
BTW for practical purposes--beside of exercises--I
rather doubt such a construct being useful.
As your code shows already, just press C-<space> to set
the mark and move cursor: region is displayed.
Press C-<space> again and region is gone.
Andreas Röhler