bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

N. Jackson
After pasting with C-y M-y M-y M-y ... , undo should (I think) undo the
paste.  Instead, it only undoes the final M-y.  One needs to undo
over-and-over-again to get back to the state before the paste operation
was begun.


In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2019-01-12 built on moondust.localdomain
Repository revision: c48ea7c08c95185ddce266744a1959e0ce6b04e1
Repository branch: master
Windowing system distributor 'Fedora Project', version 11.0.11906000
System Description: Fedora 28 (Workstation Edition)

Configured using:
 'configure 'CFLAGS=-O3 -g3 -gdwarf-4' --enable-checking'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LCMS2 GMP

Important settings:
  value of $LANG: en_CA.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  hl-line-mode: t
  diff-auto-refine-mode: t
  gnus-undo-mode: t
  pdf-occur-global-minor-mode: t
  shell-dirtrack-mode: t
  recentf-mode: t
  show-paren-mode: t
  savehist-mode: t
  save-place-mode: t
  electric-pair-mode: t
  display-time-mode: t
  display-battery-mode: t
  desktop-save-mode: t
  delete-selection-mode: t
  cua-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  temp-buffer-resize-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  global-visual-line-mode: t
  visual-line-mode: t
  transient-mark-mode: t

Features:
(shadow emacsbug completion rect python tramp-sh tramp tramp-loaddefs
trampver tramp-compat ucs-normalize calc-arith calc-forms calc-misc
calc-alg calc-menu flow-fill smerge-mode gnus-kill mailalias smtpmail
bbdb-message sendmail thingatpt cl-print debug backtrace eieio-opt
speedbar sb-image ezimage dframe help-fns radix-tree sort gnus-cite
shr-color color mm-archive gnus-bcklg solar cal-dst holidays
hol-loaddefs cal-iso org-clock tabify org-capture gnus-async qp
mail-extr gnus-ml misearch multi-isearch hl-line nndraft nnmh utf-7
gnutls epa-file network-stream nsm nnfolder bbdb-gnus nnnil gnus-agent
gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime dig nntp gnus-cache cl-extra help-mode
dired-aux sh-script smie executable cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs view disp-table
enriched org-duration eww mm-url url-queue url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap shr text-property-search svg xml dom browse-url vc-git diff-mode
display-line-numbers org-eldoc flyspell ispell org-w3m org-rmail org-mhe
org-irc org-info org-habit org-gnus nnir gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
parse-time gnus-spec gnus-int gnus-range message rmc puny rfc822 mml
mml-sec epa derived epg mm-decode mm-bodies mm-encode mail-parse rfc2231
gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils mm-util mail-prsvr
org-docview doc-view org-bibtex bibtex org-bbdb mines cookie1 gamegrid
pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local cedet dired-x dired dired-loaddefs pdf-isearch
let-alist pdf-misc imenu pdf-tools compile cus-edit pdf-view bookmark pp
jka-compr pdf-cache pdf-info tq pdf-util image-mode org-agenda
org-element avl-tree generator org org-macro org-footnote org-pcomplete
org-list org-faces org-entities time-date noutline outline easy-mmode
org-version ob-shell shell pcomplete ob-R ob-python ob-plantuml ob-org
ob-gnuplot ob-ditaa ob-calc calc-store calc-trail calc-ext calc
calc-loaddefs calc-macs ob-awk ob-dot ob-maxima ob-latex ob ob-tangle
org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint comint
ansi-color ring ob-emacs-lisp ob-core ob-eval org-compat advice org-macs
org-loaddefs format-spec find-func bbdb-mua bbdb-anniv diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs bbdb-com crm mailabbrev
bbdb bbdb-site timezone ido edmacro kmacro recentf tree-widget wid-edit
wheatgrass-theme paren savehist saveplace elec-pair time battery desktop
frameset delsel cua-base cus-start cus-load mule-util tex-site
ess-generics info finder-inf package easymenu epg-config url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq byte-opt gv bytecomp byte-compile
cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core term/tty-colors frame cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 971230 175200)
 (symbols 48 115826 1)
 (strings 32 200063 27601)
 (string-bytes 1 6578751)
 (vectors 16 105294)
 (vector-slots 8 2364967 167806)
 (floats 8 1048 864)
 (intervals 56 21887 1369)
 (buffers 992 166))




Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

Andreas Schwab
On Feb 05 2019, "N. Jackson" <[hidden email]> wrote:

> After pasting with C-y M-y M-y M-y ... , undo should (I think) undo the
> paste.

I disagree.  That would make it awkward to undo if you typed one M-y too
much.  To remove the whole paste you can also use C-w.

Andreas.

--
Andreas Schwab, SUSE Labs, [hidden email]
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."



Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

N. Jackson
In reply to this post by N. Jackson
merge 14693 34331
quit

Sorry, this is a duplicate of a pre-existing bug report [1]. I've
attempted to merge this bug with the previous one.

[I did actually look for a pre-existing bug report before I began, and
opened two potential candidates (including 14693) in my browser -- then
got distracted and never read them!]


[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=14693



Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

Michael Heerdegen
In reply to this post by N. Jackson
"N. Jackson" <[hidden email]> writes:

> After pasting with C-y M-y M-y M-y ... , undo should (I think) undo the
> paste.  Instead, it only undoes the final M-y.  One needs to undo
> over-and-over-again to get back to the state before the paste operation
> was begun.

FWIW, with smart-yank.el in Gnu Elpa you can hit M-y twice in very fast
succession to remove the yank no matter how often you have yanked.  I
say it to mention the alternative approach (to using undo), not to
advertise.

Michael.



Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

Eli Zaretskii
In reply to this post by Andreas Schwab
> From: Andreas Schwab <[hidden email]>
> Date: Tue, 05 Feb 2019 15:22:04 +0100
> Cc: [hidden email]
>
> On Feb 05 2019, "N. Jackson" <[hidden email]> wrote:
>
> > After pasting with C-y M-y M-y M-y ... , undo should (I think) undo the
> > paste.
>
> I disagree.  That would make it awkward to undo if you typed one M-y too
> much.  To remove the whole paste you can also use C-w.

I agree.  Both use cases are valid, so if we change something, we
should do it in a way that doesn't close the door for any of them.



Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

Andreas Schwab
On Feb 05 2019, Eli Zaretskii <[hidden email]> wrote:

>> From: Andreas Schwab <[hidden email]>
>> Date: Tue, 05 Feb 2019 15:22:04 +0100
>> Cc: [hidden email]
>>
>> On Feb 05 2019, "N. Jackson" <[hidden email]> wrote:
>>
>> > After pasting with C-y M-y M-y M-y ... , undo should (I think) undo the
>> > paste.
>>
>> I disagree.  That would make it awkward to undo if you typed one M-y too
>> much.  To remove the whole paste you can also use C-w.
>
> I agree.  Both use cases are valid, so if we change something, we
> should do it in a way that doesn't close the door for any of them.

Actually, you *can* already easily undo a M-y by typing M-- M-y, thus I
retract my objection.

Andreas.

--
Andreas Schwab, SUSE Labs, [hidden email]
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."



Reply | Threaded
Open this post in threaded view
|

bug#34331: 27.0.50; Undo too granular after C-y M-y M-y ...

Eli Zaretskii
> From: Andreas Schwab <[hidden email]>
> Cc: [hidden email],  [hidden email]
> Date: Tue, 05 Feb 2019 18:11:37 +0100
>
> Actually, you *can* already easily undo a M-y by typing M-- M-y, thus I
> retract my objection.

I don't retract mine, sorry.  Undo should also work in that case,
because undo is a general command, and it's IMO a nuisance to have to
invoke some other command in specific situations instead of undo.