From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: Preserving sanity in Emacs [Re: rampant region highlighting] Date: Mon, 7 Apr 2008 21:26:17 +0000 Message-ID: <20080407212617.GC2078@muc.de> References: <47F945C3.1060103@harpegolden.net> <20080406230056.GB5362@muc.de> <47F961D2.7080002@harpegolden.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1207602705 28975 80.91.229.12 (7 Apr 2008 21:11:45 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 7 Apr 2008 21:11:45 +0000 (UTC) Cc: Glenn Morris , emacs-devel@gnu.org To: David De La Harpe Golden Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 07 23:12:17 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JiydI-0000Lp-F7 for ged-emacs-devel@m.gmane.org; Mon, 07 Apr 2008 23:12:04 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jiycf-0000Lh-4X for ged-emacs-devel@m.gmane.org; Mon, 07 Apr 2008 17:11:25 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JiybU-0007WI-U8 for emacs-devel@gnu.org; Mon, 07 Apr 2008 17:10:13 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JiybS-0007TJ-26 for emacs-devel@gnu.org; Mon, 07 Apr 2008 17:10:12 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JiybR-0007Sl-KT for emacs-devel@gnu.org; Mon, 07 Apr 2008 17:10:09 -0400 Original-Received: from colin.muc.de ([193.149.48.1] helo=mail.muc.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JiybQ-000798-TA for emacs-devel@gnu.org; Mon, 07 Apr 2008 17:10:09 -0400 Original-Received: (qmail 35138 invoked by uid 3782); 7 Apr 2008 21:09:51 -0000 Original-Received: from acm.muc.de (p57AF7332.dip.t-dialin.net [87.175.115.50]) by colin2.muc.de (tmda-ofmipd) with ESMTP; Mon, 07 Apr 2008 23:09:48 +0200 Original-Received: (qmail 12382 invoked by uid 1000); 7 Apr 2008 21:26:17 -0000 Content-Disposition: inline In-Reply-To: <47F961D2.7080002@harpegolden.net> User-Agent: Mutt/1.5.9i X-Delivery-Agent: TMDA/1.1.5 (Fettercairn) X-Primary-Address: acm@muc.de X-detected-kernel: by monty-python.gnu.org: FreeBSD 4.6-4.9 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:94624 Archived-At: Hi, David! On Mon, Apr 07, 2008 at 12:50:42AM +0100, David De La Harpe Golden wrote: > Alan Mackenzie wrote: > > PLEASE STOP DOING THIS!!! This is a _mailing_ _list_, not a web > > forum. Quote the Subject:, Date:, and Message-Id: at the very least, > > please, for heaven's sake! > From: martin rudalics > Subject: Re: Enabling Transient Mark Mode by default > Date: Thu, 21 Feb 2008 08:30:11 +0100 Thanks! Sorry, I've not been able to reply earlier. My ISP's mail server crashed, and I was having to read the conversation via the HTML archive. ;-) > I don't see the Message-Id in the archive - I don't see why the > archive couldn't present them in principle, it just doesn't. > http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg01892.html Possibly because the Message-Id offers the server name to harvesting spammers. > > So, point disappears off your screen. How are you supposed to get > > back there? What key sequence would you suggest for the new command > > `scroll-to-pont'? > What's more disturbing overall, jump scrolling (it could be rapidly > smooth-scrolled given today's hardware...) or emacs taking it upon > itself to move your chosen point position? Jump scrolling. Emacs never autonomously move point. The user does. > I acknowledge that having the point always on-screen has benefits too > (though e.g. a fringe indicator could "point towards the offscreen > point" to address some concerns there...), but what if I'm just > scrolling up to look at something? Martin's hack ensured that I can > scroll away to have a look, and the point will reliably be where I left > it when I scrolled back. The functions you're talking about are fulfilled in Emacs by the mark, not the point. I frequently scoll a bit to look at things. Then I scroll back to get where I was, unless I want to stay where I've got to. The point is, by your mechanism, having scrolled away from point (leaving point off the screen), how do you then indicate where on the screen you want point to be set to, and how do you set point there? The general Emacs answer is that you indicate a position by setting point. Hmm. We're going round in circles. (You're presumably going to say "you click the mouse to set point." This violates the Emacs principle that everything must be doable without a mouse.) > Users are used to their editors' points staying where they left them > during scrolling these days- Emacs users aren't. Are you arguing that we should change Emacs merely to follow the fashion of the day? > you talk of losing mental context, well, if your mind is used to the > editor leaving the point where you left it rather than having to > remember, then emacs' point warping is a pretty big context disruptor. Not that big. For a start, you notice it before you've gone very far. Pressing _always_ takes point away from where it was. With LCD[*] editors, sometimes pressing 'a' will teleport you to far off place, sometimes not. This is one more item of state you've got to retain in your head with an LCD editor - whether a random key will cause a context explosion or not. This is an example of Emacs's instrinsic superiority. [*] "lowest common denominator" > BOOM! The word "you" (as represented by your boxy 3rd person avatar, > the point) were "on" isn't the word you're on anymore, you're on some > completely different sentence! Why should scrolling, just sliding your > viewpoint around, change that? Because the purpose of point in Emacs is to indicate where you're doing something. Here, "doing" includes "looking at". The thing that remembers a position to go back to is the mark - This is deliberate design, as evidenced by M->, C-s, and friends setting the mark. > Just adjusting the camera position in a computer game doesn't usually > make your character randomly teleport to different platforms. Scrolling > a web page form doesn't make the cursor jump from form field to form > field, etc. In a computer game, say a flight simulator, moving the joystick doesn't suddenly jerk the scenery back to the place where you last moved it. As for web pages, they are a user interface disaster, practically for anything. > I'm quite used to emacs conventions, having literally grown up using it > (okay, beginning with amiga's bundled microemacs rather than gnu > emacs), so I'm playing devils advocate to an extent here, but it's not > like it'd be impossible for emacs to support both > point-ensured-onscreen and point-can-go-offscreen behaviours _anyway_. I think it would be fairly close to impossible. The rule that point is always on the screen is so deeply embedded, mostly implicitly, that you might as well write a new editor core than try and adapt the existing Emacs. [ .... ] > > The point is the place on the screen that you're looking at, where > > new text appears when you type. Are you suggesting that when you > > type, you shouldn't see anything, because "point" isn't on the > > screen? > Nope, jump-scroll back to insertion point handily addresses that. :-) So, how do you move point rapidly to somewhere else in a buffer? There's not much point using the key, if the moment you try to do something you're jump-scrolled back to where you started. (Remember, there might not be a usable mouse, and the user might not want to have to use one even if there is.) It was such a bloody relief to get away from that misfeature when I came to Emacs. -- Alan Mackenzie (Nuremberg, Germany).