emacs-devel
[Top][All Lists]
Advanced

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

Re: a strict visual cursor in r2l and l2r buffers


From: Eli Zaretskii
Subject: Re: a strict visual cursor in r2l and l2r buffers
Date: Sat, 29 Jun 2013 16:50:13 +0300

> From: Uwe Brauer <address@hidden>
> Cc: address@hidden
> Date: Sun, 23 Jun 2013 21:43:33 +0200
> 
>    >> > It's possible, just not trivial.  Patches are welcome.
>    >> Lisp or C?
> 
>    > Whatever you like (although I think doing this is Lisp will be very
>    > inelegant, if not next to impossible).
> 
> Oops unfortunately  my C knowledge is not very deep and I asked to see
> whether it could be done in lisp, the your answer seems to indicate:
> impracticable.

I decided it was high time for Emacs to have visual-order cursor
motion.  So trunk revision 113221 implements that, please try it (by
customizing the new option visual-order-cursor-movement).  When that
option is non-nil, arrow keys will move in strict visual order.  The
feature still has some rough edges in some complicated situations, but
C-f or C-b or C-n/C-p should provide a fire escape in those cases.

And before everybody and their dog run to customize that option, let
me tell you that it will make absolutely no difference, except
unearthing some exciting new bugs, as long as you edit strict
left-to-right text (because in that case, the screen order and the
buffer order coincide).  It only makes sense to customize this option
to a non-nil value if you routinely need to work with bidirectional
text.

Note that text selection is still done in logical order (and should
continue to be so, if you ask me), even when this new option is
non-nil.  Therefore, shifted arrow keys move in visual order, but
select text in logical order, which could cause surprising effects wrt
the highlighted portions of text.  (Microsoft Word disables
visual-order cursor motion if Shift is pressed, but I consider that a
misfeature.)

Enjoy.



reply via email to

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