]> git.eshelyaron.com Git - emacs.git/commitdiff
Add bindings for 'undo-redo'
authorDmitry Gutov <dgutov@yandex.ru>
Wed, 29 Sep 2021 19:44:40 +0000 (22:44 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Wed, 29 Sep 2021 19:45:07 +0000 (22:45 +0300)
* etc/NEWS: Describe the change.

* lisp/bindings.el (global-map): Add bindings for 'undo-redo'.

* lisp/simple.el (undo-no-redo): Turn into a user option.

etc/NEWS
lisp/bindings.el
lisp/simple.el

index 0a8249e298a83e159ea9899cae26e229deeeaf4d..0c5a1004e7fe243238c3c15baff1360499b0da1f 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -957,7 +957,11 @@ for CJK text mixed with Latin text.
 +++
 ** New command 'undo-redo'.
 It undoes previous undo commands, but doesn't record itself as an
-undoable command.
+undoable command.  It is bound to 'C-?' and 'C-M-_', the first binding
+works well in graphical mode, and the second one is easy to hit on tty.
+
+For full conventional undo/redo behavior, you can also customize the
+user option 'undo-no-redo' to t.
 
 +++
 ** New commands 'copy-matching-lines' and 'kill-matching-lines'.
index 343f1ba0fa7e71e4d5a83b5834cb0041dee6ce69..9a3505058c414e897c93cd0ed07143aa143df78a 100644 (file)
@@ -994,6 +994,9 @@ if `inhibit-field-text-motion' is non-nil."
   "Keymap to repeat undo key sequences `C-x u u'.  Used in `repeat-mode'.")
 (put 'undo 'repeat-map 'undo-repeat-map)
 
+(define-key global-map (kbd "C-?") 'undo-redo)
+(define-key global-map [?\C-\M-_] 'undo-redo)
+
 (define-key esc-map "!" 'shell-command)
 (define-key esc-map "|" 'shell-command-on-region)
 (define-key esc-map "&" 'async-shell-command)
index dd480396f6d908181ee4dd34db12a8505378f949..7eba33116dec8fdeb7f70b16bb3f713e2f7f6ff4 100644 (file)
@@ -2942,8 +2942,9 @@ undo record: if we undo from 4, `pending-undo-list' will be at 3,
 (defvar undo-in-region nil
   "Non-nil if `pending-undo-list' is not just a tail of `buffer-undo-list'.")
 
-(defvar undo-no-redo nil
-  "If t, `undo' doesn't go through redo entries.")
+(defcustom undo-no-redo nil
+  "If t, `undo' doesn't go through redo entries."
+  :type 'boolean)
 
 (defvar pending-undo-list nil
   "Within a run of consecutive undo commands, list remaining to be undone.