Variable: visual-order-cursor-movement
visual-order-cursor-movement is a customizable variable defined in
bindings.el.gz.
Value
nil
Documentation
If non-nil, moving cursor with arrow keys follows the visual order.
When this is non-nil, <right> (right-char) will move to the character that is
to the right of point on display, and <left> (left-char) will move to the left,
disregarding the surrounding bidirectional context. Depending on the
bidirectional context of the surrounding characters, this can move point
many buffer positions away.
When the text is entirely left-to-right, logical-order and visual-order cursor movements produce identical results.
This variable was added, or its default value changed, in Emacs 24.4.
Probably introduced at or before Emacs version 24.4.
Source Code
;; Defined in /usr/src/emacs/lisp/bindings.el.gz
;; Moving with arrows in bidi-sensitive direction.
(defcustom visual-order-cursor-movement nil
"If non-nil, moving cursor with arrow keys follows the visual order.
When this is non-nil, \\[right-char] will move to the character that is
to the right of point on display, and \\[left-char] will move to the left,
disregarding the surrounding bidirectional context. Depending on the
bidirectional context of the surrounding characters, this can move point
many buffer positions away.
When the text is entirely left-to-right, logical-order and visual-order
cursor movements produce identical results."
:type '(choice (const :tag "Logical-order cursor movement" nil)
(const :tag "Visual-order cursor movement" t))
:group 'display
:version "24.4")