Re: Great SWT Program
On Oct 26, 2:36 pm, bbo...@gmail.com wrote:
On Oct 24, 1:27 pm, b...@pvv.ntnu.no (Bent C Dalager) wrote:
At some point in the past, bbo...@gmail.com or one of his alts wrote:
You obviously are not familiar with the Windows apps I use. F3 is most
commonly bound to next-matching-item, i.e. it continues a search. So
yes, you can indeed do a search, do something with the first hit, and
hit F3 to jump to the second hit, do something there, etc.
That is not incremental search - it's just search.
What the fuck are you blithering on about now? It is incremental
search. As in find next match, incrementally, but let me do other
things between navigating to a hit and navigating to the next hit.
Incremental search, as commonly understood, is a feature where the
window highlights matches (and moves the insertion point) as you type
your search. For example, Firefox's / and ' hotkeys (how's that for
intuitive?) are incremental searches through all page text and only
links respectively.
Incremental search is as follows. I'll use the "|" character to
denote the current insertion point and [] to denote highlighted text,
since this is a text-only medium and I can't format it for you.
You're going to want a fixed-width font for this.
Say you have some file that you've just opened that reads
v insertion point here
|Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
and you want to jump to the word 'consequat' (on line four). Assume
for the sake of example that instead of lorem ipsum text and line four
it's whatever text you care about and the point of interest is
signifigantly more than four lines from the start of the text.
When you begin an incremental search, each character typed causes
selections to appear or disappear and the insertion point to move to
the first one. So, when you type 'c', the first letter of the target
word, the text looks like this:
v insertion point here
Lorem ipsum dolor sit amet, [|c]onse[c]tetur adipisi[c]ing elit, sed
do
eiusmod tempor in[c]ididunt ut labore et dolore magna aliqua. Ut
enim
ad minim veniam, quis nostrud exer[c]itation ullam[c]o laboris nisi
ut
aliquip ex ea [c]ommodo [c]onsequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse [c]illum dolore eu fugiat
nulla
pariatur. Ex[c]epteur sint o[cc]ae[c]at [c]upidatat non proident,
sunt in
[c]ulpa qui offi[c]ia deserunt mollit anim id est laborum.
obviously, we're still nowhere near where we wanted to end up and
there are a lot of potential matches, but if we're watching the text
(rather than the search box) we can see how far away we are. So we
type the next letter ('o'), and the text looks like this:
v insertion point here
Lorem ipsum dolor sit amet, [|co]nsectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullam[co] laboris nisi ut
aliquip ex ea [co]mmodo [co]nsequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
Immediately we can see that there are far fewer matches, and that we
may not have to type very many more characters to get where we want.
However, I intentionally picked an example where the number of matches
drops rapidly but there is a large match before the actual target:
"conse" matches the word "consectetur" as well as the word
"consequat", so the insertion point won't move to the target until the
sixth character. Typing the third letter, 'n', leaves only two
candidates selected:
v insertion point here
Lorem ipsum dolor sit amet, [|con]sectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim
ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo [con]sequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
If we're lucky and we can see the target (as in this example), we know
it's the second match and we can stop typing here, hit the "next
match" key (F3, in firefox; ctrl-S, in emacs and textmate), and arrive
exactly where we intended. If not (say, because the target is on line
four hundred instead of line four), we can keep typing more letters
until the matches are narrow enough, or bounce on the "next match"
hotkey to cycle through the matches.
*That's* what your interlocutor means by incremental search. The
description here is kind of clunky, since it sounds like you have to
stop and think between each keystroke, but in practice you can very
often start a search, type most of the word while watching the
document, and find yourself at the match you were looking for with
very little thought.
The specifics obviously vary a little by application; emacs and
firefox, for example, highlight the match under the insertion point in
a different colour from other matches in the document, while textmate
only highlights the match at the insertion point and leaves the other
matches unhighlighted. Notification that you've typed something with
no matches is handled slightly differently by different programs, too;
some stop you from typing (with an alert sound) if the character would
match nothing; others simply display a text notification next to the
search area and allow you to type anything you like.
Incremental search is extremely useful for navigating text; when I use
Firefox at all I often use incremental search of links to navigate
instead of the mouse. Typing 'nex(enter) is often faster than moving
my hand to the mouse, accurately targeting the "Next Page" link I have
in mind, and moving my hand back to the keyboard. I even use
incremental search in my shell: old commands can be re-run using ctrl-
shift-R; the search is incremental and chronologically backwards, so
it will match the most recent command matching the prefix I've typed
so far.