--- Begin Message ---
Subject: |
Cursor stuck on line ending w/ visual-order-cursor movement - move-point-visually fails. |
Date: |
Sat, 14 Dec 2013 12:53:51 -0500 |
With a certain combination of settings, cursor movement to the left fails at
the (right) end of lines:
Emacs -Q -nw
[Enter and evaluate the following:]
(whitespace-newline-mode 1)
(global-hl-line-mode 1)
(setq visual-order-cursor-movement t)
[Then press left-arrow repeatedly. Cursor will get "stuck" on a line ending.]
Further observations:
- the "-nw" is not necessary - this is just to simplify things.
- `hl-line-mode' alone does not suffice - it has to the be
`global-hl-line-mode'.
Second, simpler recipe:
Emacs -Q -nw
[Enter and evaluate the following:]
(whitespace-newline-mode 1)
Place cursor at end of line, then M-: (move-point-visually -1) RET.
Nothing happens.
In GNU Emacs 24.3.50.3 (x86_64-apple-darwin13.0.0, NS apple-appkit-1265.00)
of 2013-12-07 on momo
[git revision 9d4f4d00978ceed46c4c30fe41c258716f9e042e - last change Sat Dec 7
20:46]
Configured using:
`configure --with-ns'
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Lisp Interaction
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#16148: Cursor stuck on line ending w/ visual-order-cursor movement - move-point-visually fails. |
Date: |
Sat, 14 Dec 2013 21:37:35 +0200 |
> From: David Reitter <address@hidden>
> Date: Sat, 14 Dec 2013 12:53:51 -0500
>
> With a certain combination of settings, cursor movement to the left fails at
> the (right) end of lines:
>
> Emacs -Q -nw
>
> [Enter and evaluate the following:]
>
> (whitespace-newline-mode 1)
> (global-hl-line-mode 1)
> (setq visual-order-cursor-movement t)
>
> [Then press left-arrow repeatedly. Cursor will get "stuck" on a line ending.]
Fixed.
> - `hl-line-mode' alone does not suffice - it has to the be
> `global-hl-line-mode'.
That's because move-point-visually uses 2 separate strategies, and the
problem was only in one of them. You need to work very hard for
move-point-visually to fall back on the second strategy, but the
combination of the above 2 mode, each one of which is a redisplay
optimizations killer, succeeded in doing just that.
> Second, simpler recipe:
>
> Emacs -Q -nw
>
> [Enter and evaluate the following:]
>
> (whitespace-newline-mode 1)
>
> Place cursor at end of line, then M-: (move-point-visually -1) RET.
> Nothing happens.
This is the same problem (M-: also forces move-point-visually to use
the 2nd strategy), so it is also fixed.
Thanks.
--- End Message ---