Two comments about this:
Comment #1:
An excellent (although secondary) source from the precambrian era,
Morris I Bolsky
"The /vi/ User's Hanbdbook"
(c) 1984 by Bell Telephone Laboratories, Incorporated
(c) 1985 by AT&T Technologies, Inc
published by Prentice-Hall, ISBN 0-13-941733-8
clearly documents [for "Version 3 of /vi/ on UNIX System V, Release 2"]
the behavior that both '(' and ')' only stop at 2-spaces-after-punctuation.
>From page 19, section "Moving cursor to a sentence, etc., in buffer":
Description of ')' or '3)'
> Moves RIGHT (and DOWN, etc.) to the beginning of the next or 3rd next
> SENTENCE. End of a sentence is detected by a ., !, or ? followed by
> 2 Spaces or a newline.
Description of '(' or '3('
> Same as above, but moves LEFT (and UP, etc.) to the preceding
> or 3rd preceding beginning of sentence.
I have the original 4.3BSD & 4.4BSD printed manual sets packed away
in boxes, but the volumes I have out on a shelf don't include the
detailed /vi/ documentation. If anyone cares deeply, I could unpack
the relevant volumes to see what behavior they document.
Comment #2:
I've been using vi for ~35 years, and my "finger memory" certainly
makes use of the current (asymmetric, and arguably broken) behavior.
My use case is for text with only a single space separating sentences,
or with a mixture of 1- and 2-space spearators. [The latter is a bit
inconsistent, but I encounter it fairly often in other people's text
that I'm editing.]
With the current (asymmetric) vi behavior, 1-space-separating-sentences
makes ')' much less useful (compared to 2-space-separated-sentences):
')' always goes to end-of-*paragraph*, and there's no easy way to get
move-ahead-to-start-of-next-sentence. But with the current (asymmetric)
vi behavior '(' provides a workaround. If I want to move the cursor to
start-of-next-sentence but ')' has takes the cursor to end-of-paragraph,
then a couple of '(' (each going back by one *sentence* because of the
asymmetric behavior) will being the cursor to where I want. This isn't
as nice as having both ')' and '(' move one sentence at a time, but it's
better than having to go word-by-word or move my fingers over to the
arrow keys....
IMHO the most useful behavior would be to make ')' stop at either 1 *or* 2
spaces after a punctuation mark, i.e., make ')' exactly the inverse of
the present '(' behavior. But that's clearly not the documented behavior,
either in 1984 or today. And since I'm not offering to fix the code,
my opinion is worth <= what you paid for it. :)
ciao,
--
-- Jonathan Thornburg <jthorn4242 at gmail dot com>
Dept of Astronomy & IUCSS, Indiana University, Bloomington, Indiana, USA
currently on the west coast of Canada
"C++ is to programming as sex is to reproduction. Better ways might
technically exist but they're not nearly as much fun." -- Nikolai Irgens
"that applies to Perl, too!" -- me