[Top][All Lists]

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

RE: info-find-source

From: Drew Adams
Subject: RE: info-find-source
Date: Tue, 16 Jan 2018 15:10:39 -0800 (PST)

>> What I find most useful for finding stuff: `i',
>> combined with better pattern-matching for the
>> index-entry completion candidates.

Further in that post I said "Icicles or similar"
to characterize such "better pattern-matching".

My point was that key `i' is typically the best
way (IMO) to find stuff in Info.  And its power is
greatly increased by libraries that provide better
pattern-matching than what is offered by vanilla
Emacs.  Icicles is one such library.

>> I use Icicles.  That means that index entries,
>> which are what `i' completes your minibuffer
>> contents to, can be matched with regexps,
>> including just substrings.
> I stopped using Icicles...  I switched to Ivy, which
> is definitely less powerful, but good enough...

If you prefer this or that or you don't use/need
this or that, that's fine.

Wrt Icicles and other pattern-matching libraries, FWIW:

When Icicles started exploring completion and what
could be done with it there was essentially nothing
besides vanilla-Emacs completion, which was itself
coded only in C (no `minibuffer.el' library yet, no
`completion-styles' - just basic prefix completion).

And completion wasn't used much in Emacs - mainly
just for file-finding, buffer-switching, and `M-x'.

IswitchB was the only completion-related thing that
did something interesting before Icicles.  Well,
there was also `icomplete.el', which incrementally
showed you some input completions, but you couldn't
do anything with them except use them as a guide
for what to continue typing.

Over time many Icicles features have been introduced
into new packages (Ido, Helm/Anything, Ivy) - years
later.  Ivy apparently introduced `ivy-occur'/`swiper'
in 2015.  Icicles introduced it (as `icicle-occur')
in 2006 (along with `icicle-search': same, but with
regexp-defined search contexts, not just lines).

That's all good, not bad.  "Imitation...flattery."

Icicles has introduced original ideas/features,

 incremental completion (matches updated as you
 type), help on individual completion candidates,
 multi-commands (multiple actions on multiple
 candidates), progressive completion (narrowing,
 successive search patterns), match complementing,
 multi-completions (matching multiple things
 together - e.g. file names & contents), cycling
 candidates, sorting candidates on the fly, saving
 completion matches & combining them using set
 operations, key completion (which also shows the
 keys currently available), fuzzy completion,
 using completion for search...

Some Icicles ideas might be hare-brained or
half-baked.  Some that I originally thought were
probably crazy have turned out to be among the most
useful.  Others I thought might be more useful were
not so.

Any or all of them could be implemented in different,
some better, ways.  And different UIs could be used
to present them to users.  And there are bugs to be

If another package picks up this or that Icicles
idea and implements it faster or in an easier-to-use
way than what Icicles provides that's a good thing,
not a bad thing.  Improvement is good.

One of the explicit purposes of Icicles, from the
outset, has been to serve as food for thought and
experiment (for me, in particular). The existence
of Helm (formerly Anything) and Ivy is, among
other things, a testament to the usefulness of
Icicles ideas - at least some of them ;-).

Other Icicles ideas have found their way to vanilla
Emacs and to other of my libraries: Isearch+, Info+,
Bookmark+, Dired+, LaCarte, highlight.el, mouse3.el,
palette.el, synonyms.el, ucs-cmds.el.

> since I did not use it often enough to memorize all
> the cool stuff in there;

There's really nothing to memorize.  But perhaps the
first thing is to know how to ask it.

* `S-TAB', to see all currently available keys and
  their commands (navigate the key hierarchy,
  including menus).

* `M-?' during minibuffer input for general help,
  with links to the complete help - in local files
  and on the Web - and with links to customizing
  the Icicles options & faces.

The `M-?' help also gives you the current status
of options, and (linked) key-sequences to change
status on the fly.  See attached, and imagine that
the commands and keys shown there are links that
perform their actions. 

If someone can't remember `M-?' then s?he can find
it in menu-bar `Icicles > Icicles Help' anytime.

> In Ivy, if you search for "abc xyz", it basically
> transforms it to "abc.*xyz" under the hood.  Very
> useful, and covers 99% of my use cases.

Same with Icicles, FWIW.  That's one of the 7
"fuzzy" completion methods it supports, besides
regexp matching and vanilla `completion-styles'.
You can make it your default method or choose it
or another using `M-('.

> Still, I do appreciate Icicles - I just don't
> really need its power (or at least I haven't yet
> discovered that I do;-)).

You probably don't "need" most of what Emacs or
Lisp has to offer either.  Few (none?) of us do.
It's available on demand, for when you do.  It
doesn't bother you when you don't.  Same for
Icicles, I hope.

Attachment: general-help.txt
Description: Text document

reply via email to

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