File: goto-chg.el.html

Goto Last Change

Goto the point of the most recent edit in the buffer. When repeated, goto the second most recent edit, etc. Negative argument, C-u -, for reverse direction. Works by looking into buffer-undo-list to find points of edit.

You would probably like to bind this command to a key. For example in your ~/.emacs:

  (require 'goto-chg)

  (global-set-key [(control ?.)] 'goto-last-change)
  (global-set-key [(control ?,)] 'goto-last-change-reverse)

Works with emacs-19.29, 19.31, 20.3, 20.7, 21.1, 21.4, 22.1 and 23.1 Works with XEmacs-20.4 and 21.4 (but see todo about last-command below)

--------------------------------------------------------------------
History

Ver 1.7.5 2022-01-04 Axel Foesman, Stefan Kangas
   Consider all entries in undo-tree changesets, bump license to GPL3+
Ver 1.7.4 2020-10-08 Vasilij Schneidermann
   Remove hard dependency on undo-tree
Ver 1.7.3 2019-01-07 Vasilij Schneidermann
   Fix errors when used with persistent undo
Ver 1.7.2 2018-01-05 Vasilij Schneidermann
   Fix byte-compiler warnings again
Ver 1.7.1 2017-12-31 Vasilij Schneidermann
   Fix byte-compiler warnings
Ver 1.7 2017-09-17 Vasilij Schneidermann
   Make it work with undo-tree-mode (see
   <https://github.com/martinp26/goto-chg>)
Ver 1.6 2013-12-12 David Andersson
   Add keywords; Cleanup comments
Ver 1.5 2013-12-11 David Andersson
   Autoload and document goto-last-change-reverse
Ver 1.4 2008-09-20 David Andersson
   Improved property change description; Update comments.
Ver 1.3 2007-03-14 David Andersson
   Added goto-last-change-reverse
Ver 1.2 2003-04-06 David Andersson
   Don't let repeating error depthen glc-probe-depth.
Ver 1.1 2003-04-06 David Andersson
   Zero arg describe changes. Negative arg go back.
   Autoload. Remove message using nil in stead of an empty string.
Ver 1.0 2002-05-18 David Andersson
   Initial version

--------------------------------------------------------------------

todo: Rename "goto-chg.el" -> "gotochange.el" or "goto-chgs" ? todo: Rename function goto-last-change -> goto-last-edit ? todo: Rename adjective "-last-" -> "-latest-" or "-most-recent-" ?
todo: There are some, maybe useful, funcs for region undo
      in simple.el in emacs 20. Take a look.
todo: Add functionality to visit changed point in text order, not only in
       chronological order. (Naa, highlight-changes-mode does that).
todo: Inverse indication that a change has been saved or not todo: Highlight the range of text involved in the last change? todo: See session-jump-to-last-change in session.el? todo: Unhide invisible text (e.g. outline mode) like isearch do. todo: XEmacs sets last-command to t after an error, so you cannot reverse
       after "No furter change info". Should we bother?
todo: Try distinguish "No further change info" (end of truncated undo list)
       and "No further changes" (end of a complete undo list).

--------------------------------------------------------------------

Defined variables (4)

glc-current-spanInternal for goto-last-change.
glc-default-spangoto-last-change don’t visit the same point twice.
glc-directionDirection goto-last-change moves towards.
glc-probe-depthInternal for goto-last-change.

Defined functions (8)

glc-adjust-pos2(POS P1 P2 ADJ)
glc-center-ellipsis(STR MAXLEN &optional ELLIPSIS)
glc-fixup-edit(E)
glc-get-descript(E &optional N)
glc-get-pos(E)
glc-is-positionable(E)
goto-last-change(ARG)
goto-last-change-reverse(ARG)

Defined faces (0)