unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Dmitry Gutov'" <dgutov@yandex.ru>, <philipp@haselwarter.org>
Cc: help-gnu-emacs@gnu.org
Subject: RE: Tips for quick jumping back and forth
Date: Wed, 11 Jul 2012 08:02:21 -0700	[thread overview]
Message-ID: <2F7782F6CA4745A3A13E350FB63DD025@us.oracle.com> (raw)
In-Reply-To: <4FFD814E.8020702@yandex.ru>

>  > 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.




  parent reply	other threads:[~2012-07-11 15:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 13:36 Tips for quick jumping back and forth Dmitry Gutov
2012-07-11 14:40 ` Eric Abrahamsen
2012-07-11 15:02 ` Drew Adams [this message]
2012-07-11 17:31   ` Dmitry Gutov
2012-07-11 18:33     ` Drew Adams
2012-07-11 21:03       ` Dmitry Gutov
2012-07-11 23:44         ` Drew Adams
2012-07-12 21:30           ` Dmitry Gutov
     [not found] <mailman.4232.1341639863.855.help-gnu-emacs@gnu.org>
2012-07-07  8:02 ` José A. Romero L.
2012-07-07 10:48 ` Xah Lee
2012-07-08  4:25 ` B. T. Raven
2012-07-12  0:04 ` Edward at Work
  -- strict thread matches above, loose matches on Subject: below --
2012-07-07 15:27 Dmitry Gutov
2012-07-08  3:28 ` C K Kashyap
2012-07-08  3:31   ` suvayu ali
2012-07-08  3:35     ` C K Kashyap
2012-07-09  2:01     ` Ken Goldman
     [not found]   ` <mailman.4284.1341718295.855.help-gnu-emacs@gnu.org>
2012-07-08  3:47     ` rusi
     [not found] ` <mailman.4283.1341718129.855.help-gnu-emacs@gnu.org>
2012-07-08 17:28   ` Xah Lee
2012-07-07 13:39 Dmitry Gutov
2012-07-07  5:43 C K Kashyap
2012-07-07  6:19 ` Jambunathan K
2012-07-11  9:57   ` Philipp Haselwarter
2012-07-07  6:45 ` Andreas Röhler
2012-07-07 13:56 ` Francesco Mazzoli
     [not found] ` <mailman.4249.1341669396.855.help-gnu-emacs@gnu.org>
2012-07-07 14:44   ` notbob
2012-07-20 13:02     ` Kevin Rodgers
2012-07-20 13:15       ` Jambunathan K
2012-07-09  2:59 ` Le Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2F7782F6CA4745A3A13E350FB63DD025@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=dgutov@yandex.ru \
    --cc=help-gnu-emacs@gnu.org \
    --cc=philipp@haselwarter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).