help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Looking for universal completion with simple UI


From: Drew Adams
Subject: RE: Looking for universal completion with simple UI
Date: Fri, 17 Oct 2014 09:31:06 -0700 (PDT)

> What I have in mind is much narrower:
> developing a set of customizations to the interface. As with other
> Emacs packages - and as you did with Icicles itself - I may want to
> share those customizations down the line if I think they form a
> coherent whole. That's the connection I was making to Emacs starter
> packages. They offer a variety of ways to get started with Emacs,
> and reflect different people's perspectives on how that can be done.
> So I'm interested in hearing whether you have any concerns about
> this idea from the outset.

First, as I said before, setting `icicle-top-level-key-bindings'
to nil gives you just such a minimal "starter package".

With that, if you use Emacs as if it were vanilla Emacs (i.e.,
you don't try any Icicles keys in the minibuffer) then you get
pretty much vanilla Emacs behavior.  Not exactly, but pretty close.

And you can then, if you want, progressively choose to use some
of the Icicles minibuffer keys.  That lets you indulge in Icicles
features on demand, at your own speed, and to any limited extent.
Runtime, on-demand, make-your-own-starter-kit. You or anyone else.

For example:

1. Trying `S-TAB' instead of `TAB' lets you try substring or
   regexp completion.

2. Trying `S-SPC' after completing lets you try progressive
   completion (narrow the candidates using another pattern).

3. Trying `<down> <down>'... followed by `RET' lets you try
   cycling among completion candidates to choose one.

Those 3 basic Icicles features are independent of each other.
You can try any of them, with or without the others, at any
time.  With combinations of just those 3 features, you get
eight possible Icicles "starter kits" (none, 1, 2, 3, 12, 23,
13, 123).

Second, as to whether you can create your own "customizations
to the interface" and share them with others:

Of course you can, respecting the GNU Public License that the
code is distributed under.  That's the whole point of GNU and
the GPL: freely sharing source code in a reasonable and
freedom-respecting manner.

There are by design "a variety of ways to get started with"
Icicles.  Setting different combinations of option values
gives you different such ways ("starter kits").  Different
combinations "reflect different people's perspectives on
how" to use (or to get started with) Icicles.  If you want
to share your preferred combination with others and call
that the "Earl Icicles Starter Kit", go for it.  No problem.

Likewise, if you want to customize or enhance the Icicles
code in some way that appeals to you, and then share your
customization code, go for it (respecting the GPL).  You
are also welcome to submit enhancement requests for this
or that feature or change to be made to the Icicles code.

One reason there are so many out-of-the-box ways to
customize Icicles (e.g. options) is that different users
have requested different ways to use it.

The default behavior is, BTW, not the behavior I happen to
use, myself.  It is the behavior I think most appropriate
as the general, default behavior.  And yes, it has changed
over time.

There is nothing holy about a set of default values.  They
always represent a compromise and a judgment call, taking
lots of things into consideration.

Different people have different judgments, for different
contexts and purposes.  A different set of default values
gives you a different Icicles "starter kit".

And no, there is nothing wrong with sharing your own
preferred default values, or values that you think might
be helpful as defaults for some particular set of Icicles
users, whether starters or others.

In sum, I am open wrt concrete suggestions about Icicles
default values.  Alternatively, you are welcome to publish
your own recommended set of default values.  HTH.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]