From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Samuel Wales Newsgroups: gmane.emacs.help Subject: Re: make undo operate as in (no flames please) vim Date: Sun, 25 Jan 2009 11:16:42 -0700 Message-ID: <20524da70901251016j368c54b8h5c6d2f9a7badf5d3@mail.gmail.com> References: <87eiyusrn4.fsf@newsguy.com> <000f01c97e88$e231db20$0200a8c0@us.oracle.com> <87vds3miqt.fsf@newsguy.com> <003501c97f0e$ba8c8210$0200a8c0@us.oracle.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1232907601 1739 80.91.229.12 (25 Jan 2009 18:20:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 25 Jan 2009 18:20:01 +0000 (UTC) Cc: help-gnu-emacs@gnu.org, Harry Putnam To: Drew Adams Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Jan 25 19:21:13 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LR9bb-0005op-C6 for geh-help-gnu-emacs@m.gmane.org; Sun, 25 Jan 2009 19:21:11 +0100 Original-Received: from localhost ([127.0.0.1]:51084 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LR9aJ-0005Hx-FV for geh-help-gnu-emacs@m.gmane.org; Sun, 25 Jan 2009 13:19:51 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LR9XK-0004NK-H4 for help-gnu-emacs@gnu.org; Sun, 25 Jan 2009 13:16:46 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LR9XI-0004MZ-Ug for help-gnu-emacs@gnu.org; Sun, 25 Jan 2009 13:16:46 -0500 Original-Received: from [199.232.76.173] (port=38127 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LR9XI-0004MS-IY for help-gnu-emacs@gnu.org; Sun, 25 Jan 2009 13:16:44 -0500 Original-Received: from mu-out-0910.google.com ([209.85.134.185]:61137) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LR9XI-0007oc-4i for help-gnu-emacs@gnu.org; Sun, 25 Jan 2009 13:16:44 -0500 Original-Received: by mu-out-0910.google.com with SMTP id i2so4056356mue.6 for ; Sun, 25 Jan 2009 10:16:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=uIpLNZz3X2HwT4CweFfe0pNf5pz4xzsOxAobNSsowV8=; b=P6taKE8wONnQlim2goeGIcdMOBUot5wy0vVOhJTQf6+kMFxb3OWbyti4ECzQLUTVM0 8uTc3ZiUzG2rCg6g5gxEXXd6eQrSJU1M7HtE7NhyJlhx28fYl02PAytpYJRvxyle7dvQ G1uVf79yD0Q8j7im+n4oFfXm77FewtNTTihNI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=hgjSXLin4bZwJwL0T1UOa1A1TjioZOIXqThnWhr/9Wo3Jk79jwIFAwEam1C0WiyeIj IKK8hXjnFXJ36qYWPmlAra4Tjq0fRFl8JJTxKMAP4xoHq4zK99C2sGkbfkdFyZTGJs8a EfAf+J9WCweXqoDm0tFhZC6rL0xFpoUK5Gkc0= Original-Received: by 10.103.212.2 with SMTP id o2mr3061007muq.131.1232907402481; Sun, 25 Jan 2009 10:16:42 -0800 (PST) In-Reply-To: <003501c97f0e$ba8c8210$0200a8c0@us.oracle.com> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:61633 Archived-At: IMO (this whole post is IMO) the single most confusing aspect of emacs in practice for old and new users alike -- although some people are amazingly not at all confused by it -- is undo. More generally, many commands have no good provision for overshooting. This applies to mark cycling, global mark cycling, and many other things. Most of them provide a ring instead of forward and backward commands. But undo provides a mechanism that is simple in principle but impossible (for probably the vast majority of users) in practice. And that's the "just undo the undo" problem. In other words, there are many commands that don't allow you to go forward if you overshoot going backward. In all cases, I believe that forward and backward commands would be easier for most users. (Drew, you're probably itching to mention Icicles here :), but I'm referring to vanilla emacs here, and want to talk about that only, since not everybody uses Icicles. I still don't, for several reasons, despite its nice aspects.) Consider the arrow keys. To go forward, (or down), you just press the key. You are *not* asked to press backward (or up) until it wraps around, as you are with the mark ring and the global mark ring. And you *not* asked to "just go backward on the backward" by pressing the key until you overshoot, then pressing another key, then pressing the key again a bunch of times until you undo the overshoot. You just press the key! redo.el corrupts the buffer. It is not suitable to include in emacs until that bug is fixed. But I think that emacs would be greatly improved if all current and future movement commands like mark ring, global mark ring, and undo list, had forward and backward. This, I think, would please old and new users alike. Except for the supermen who have no problem using undo the way it is. :) -- For personal and corporate gain, myalgic encephalomyelitis denialists are knowingly causing massive suffering and 25-years-early death by grossly corrupting science. http://www.meactionuk.org.uk/What_Is_ME_What_Is_CFS.htm