If both linum-mode (or nlinum-mode) and org-indent-mode are enabled,
then moving the cursor to the previous line using <up> causes it to jump
horizontally to the right. The jump matches the current indentation. I
would expect the cursor to remain in the same column.
Load linum.org (contents below) with minimal config. linum.org will
enable linum-mode and org-indent-mode:
emacs -Q linum.org
Place your cursor on the "2" in the fourth line and press <up>. The
cursor will jump two columns to the right to the "4" in the third line.
Press <up> again and the cursor will move to the "4" in the second line.
Press <up> again and the cursor will jump back to the "e" in the first
line.
What is interesting is that you get different behavior when using
<down>. The cursor remains in the same column as you move down each
line. So starting on the "e" in the first line, pressing <down> moves
the cursor to the "2" on the second line.
If you insert a second level heading in between the first and the second
line, then the jumps will be four columns instead of two.
I discovered this problem first in nlimum-mode, but it is easier to
reproduce using linum-mode when starting Emacs with -Q.
Contents of linum.org:
* heading
1234 line 2
1234 line 3
1234 line 4
# Local Variables:
# eval: (org-indent-mode 1)
# eval: (linum-mode 1)
# End:
Emacs : GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21)
of 2017-09-22, modified by Debian
Package: Org-mode version 8.2.10 (release_8.2.10 @
/usr/share/emacs/25.2/lisp/org/)
current state:
==============
(setq
org-tab-first-hook '(org-hide-block-toggle-maybe
org-src-native-tab-command-maybe
org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-speed-command-hook '(org-speed-command-default-hook
org-babel-speed-command-hook)
org-occur-hook '(org-first-headline-recenter)
org-metaup-hook '(org-babel-load-in-session-maybe)
org-confirm-shell-link-function 'yes-or-no-p
org-after-todo-state-change-hook '(org-clock-out-if-current)
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-babel-pre-tangle-hook '(save-buffer)
org-mode-hook '(#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook org-show-block-all
append local]
5]
#[nil "\300\301\302\303\304$\207"
[org-add-hook change-major-mode-hook
org-babel-show-result-all append local]
5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point
org-babel-execute-safely-maybe)
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
org-cycle-hide-inline-tasks org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-confirm-elisp-link-function 'yes-or-no-p
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
)