[Top][All Lists]

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

bug#15712: 24.3; Point forgets what column it was in when vertical movem

From: Adam Nielsen
Subject: bug#15712: 24.3; Point forgets what column it was in when vertical movement causes horizontal scroll
Date: Fri, 25 Oct 2013 16:42:03 +1000

Say you have a number of long lines, which are truncated because they
are wider than Emacs can display.  There are blank lines in between
them.  Like this: (the "..." should be expanded until the line is wider
than the Emacs window)

long 1 longlonglong...2
long 1 longlonglong...2

long 1 longlonglong...2
long 1 longlonglong...2

If you place the point on the "1" and move down one line, the point will
move to the "1" on the line below (i.e. it stays on the same column.)
Moving down another line (to the blank line) the point changes column,
but moving down a third time the point returns to the original column
and is again on the "1".  This is normal and correct.

However if this process is repeated on the "2" instead, when the point
is moved to the blank line Emacs will scroll horizontally to ensure the
point remains visible.  This scrolling however, causes the point to
forget what column it was on, so when moving down below the blank line,
it does not return to the "2" and instead moves to the "l", as if the
point had been commanded to return to the first column.

I believe this is a bug because the behaviour is not consistent, and
changes depending on the width of the Emacs window - it only affects
lines too long to display.

In GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.2)
 of 2013-08-07 on -mnt-storage-buildroots-staging-x86_64-eric
Windowing system distributor `The X.Org Foundation', version
11.0.11402000 Configured using:
 `configure '--prefix=/usr' '--sysconfdir=/etc' '--libexecdir=/usr/lib'
 '--localstatedir=/var' '--with-x-toolkit=gtk3' '--with-xft'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector

Important settings:
  value of $LC_COLLATE: C
  value of $LC_TIME: en_DK.UTF-8
  value of $LANG: en_AU.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: C++/l

Minor modes in effect:
  shell-dirtrack-mode: t
  ido-everywhere: t
  winner-mode: t
  show-paren-mode: t
  autopair-mode: t
  autopair-global-mode: t
  global-whitespace-mode: t
  delete-selection-mode: t
  desktop-save-mode: t
  recentf-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
hides /home/adam/.emacs.d/site-lisp/nxhtml/related/php-mode 
hides /home/adam/.emacs.d/site-lisp/nxhtml/tests/ert

(shadow sort mail-extr emacsbug message idna rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils jka-compr info
windmove vcursor ruler-mode mule-util reveal repeat org-protocol master
linum iswitchb ibuffer hl-line hippie-exp follow filesets filecache ffap
url-parse url-vars emacs-lock dabbrev completion bs autorevert
autoinsert pp viper viper-ex viper-macs viper-mous viper-cmd viper-keym
viper-util viper-init vip tpu-edt edt picture ehelp cua-base crisp
electric cus-edit cus-start cus-load vc vc-dispatcher js json moz imenu
thingatpt make-mode tramp-cache tramp tramp-compat auth-source eieio
mm-util mail-prsvr password-cache tramp-loaddefs shell dired-aux
help-mode dired misearch multi-isearch css-mode org-wl org-w3m org-vm
org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html org-exp
ob-exp org-exp-blocks org-agenda org-info org-gnus gnus-util org-docview
org-bibtex bibtex org-bbdb org byte-opt warnings bytecomp byte-compile
cconv ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint
ob-keys org-pcomplete pcomplete comint ansi-color org-list org-faces
org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob
org-compat org-macs ob-eval org-loaddefs format-spec find-func cal-menu
calendar cal-loaddefs nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok vc-git php-mode derived etags cc-langs cc-mode cc-fonts
cc-guess cc-menus cc-cmds speedbar sb-image ezimage dframe ido winner
ring edmacro kmacro cc-styles cc-align cc-engine cc-vars cc-defs
rainbow-delimiters paren autopair whitespace smarttabs advice help-fns
advice-preload delsel desktop recentf tree-widget cl-macs gv
color-theme-borland color-theme easymenu wid-edit cl cl-lib time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)

reply via email to

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