From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.help Subject: RE: Tips for quick jumping back and forth Date: Wed, 11 Jul 2012 08:02:21 -0700 Message-ID: <2F7782F6CA4745A3A13E350FB63DD025@us.oracle.com> References: <4FFD814E.8020702@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1342018985 10633 80.91.229.3 (11 Jul 2012 15:03:05 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 11 Jul 2012 15:03:05 +0000 (UTC) Cc: help-gnu-emacs@gnu.org To: "'Dmitry Gutov'" , Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jul 11 17:03:03 2012 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SoyRS-0001rY-5e for geh-help-gnu-emacs@m.gmane.org; Wed, 11 Jul 2012 17:03:02 +0200 Original-Received: from localhost ([::1]:40523 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoyRQ-0003Gs-Ud for geh-help-gnu-emacs@m.gmane.org; Wed, 11 Jul 2012 11:03:00 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52290) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoyRE-0003GV-8w for help-gnu-emacs@gnu.org; Wed, 11 Jul 2012 11:02:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SoyR1-0000LP-4T for help-gnu-emacs@gnu.org; Wed, 11 Jul 2012 11:02:47 -0400 Original-Received: from rcsinet15.oracle.com ([148.87.113.117]:30876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SoyR0-0000Kr-Tq for help-gnu-emacs@gnu.org; Wed, 11 Jul 2012 11:02:35 -0400 Original-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q6BF2U0H025587 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 11 Jul 2012 15:02:31 GMT Original-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q6BF2UKF020643 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Jul 2012 15:02:30 GMT Original-Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63]) by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q6BF2TuS021790; Wed, 11 Jul 2012 10:02:29 -0500 Original-Received: from dradamslap1 (/10.159.166.95) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 11 Jul 2012 08:02:29 -0700 X-Mailer: Microsoft Office Outlook 11 Thread-Index: Ac1fajCXaMT1XlHwT6+tV4uwzW0OcgABdSGw In-Reply-To: <4FFD814E.8020702@yandex.ru> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 148.87.113.117 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:85805 Archived-At: > > It'd be neat if there were different ways to navigate > > through the ring; when I discovered Toby Cubitt's > > excellent undo-tree-mode it somewhat revolutionized > > my editing habits. I imagine that having a tree-like > > representation of the marks that allows to easily > > navigate back and forth would be very pleasant. > > Not sure about sideways navigation, but at least going back > and forward between marks would be an improvement. > > The distinction between local and global mark rings also, I think, > complicates things. What you want is a quick way to navigate to any previously marked position. And of course a quick way to mark each position (e.g. a quick key). It does not matter what "mark" means here - it could be but need not be an Emacs marker (e.g. from `C-SPC'). AFAICT, it also does not matter whether the marks were defined using a treelike pattern of navigation in the first place. At least not to me, it doesn't. And anyway you don't want to have imposed a particular navigation pattern (e.g. tree traversal of some sort). You want to be able to navigate among marks in any order. More importantly, to navigate to an arbitrary "marked" position, you need _direct_ access. It's of course also nice to be able to cycle among any group of those positions, including all of them. But cycling, whether tree traversal or other, is essentially a fallback, primitive way to get where you want to go. To get to an arbitrary position - especially to get there directly, it helps for the position to have a name or to be highlighted in some way, so that you can easily (a) recognize it and (b) directly point to it (e.g. mouse, or name completion). Here are two great ways to do these things, IMNSHO: 1. Autonamed bookmarks, with Bookmark+. You can create them with a single keystroke. They have recognizable names that by default show their buffer positions. They can optionally be highlighted in a number of different ways and based on a number of different conditions/events. They can be temporary or you can save them persistently (individually or en masse). You can cycle among any group of them by just hitting a repeating key. So a single key to create, easily recognized, direct-access navigation, cycling. 2a. Icicles. First, it improves what Bookmark+ offers, by providing various ways to match the bookmark names, and letting you easily change sort orders for cycling. 2b. Icicles. Second, it gives you the same kind of navigation for the ordinary markers of the `mark-ring' and the `global-mark-ring' (separately) as it does for bookmarks. You can use the same key to set a marker and to navigate to one. What about the names - how do you recognize a marker and access it directly? The text of the line is the name. By default the completion candidates are in marker (i.e., buffer position) order - just hit a key to change to the next sort order. So a single key to create, easily recognized, direct-access navigation, cycling. Have fun. HTH.