Subject: Re: bug#20499: [PROPOSED PATCH] C-x 8 shorthands for curved quotes, , Euro, etc.

From: Eli Zaretskii <[email-masked]>
Date: Mon, 11 May 2015 17:54:58 +0300

> Date: Sun, 10 May 2015 18:28:17 -0700
> From: Paul Eggert <[email-masked]>
> CC: [email-masked], Richard Stallman <[email-masked]>
> 
>     your idea of showing dozens or hundreds of characters isn't
>     workable, either.
> 
> It sounds workable to me, as I've used similar interfaces elsewhere, and they work reasonably well. They're not as good as an input method if you're an expert in the method, but they're much better than nothing when you're a non-expert and don't have the time to learn an input method but just want to enter a few unusual characters.

At least the last part of this thread was about _finding_ the
character, if you have only partial information about it.  My comment
above was about that use case, and that use case only.  You seem to be
talking about a different use case: when the user already knows quite
well which character she wants.

> For example, if I visit English Wikipedia page for Emacs:
> 
> http://en.wikipedia.org/wiki/Emacs
> 
> and push the "Edit" button, I'll get to this page:
> 
> http://en.wikipedia.org/w/index.php?title=Emacs&action=edit
> 
> which gives me a list of buttons for inserting any of "– — ° ′ ″ ≈ ≠ ≤ ≥ ± − × ÷ ← → · §", which I can just push directly to insert the corresponding character.

This is the case where you know a very small subset of characters from
which to choose.  But even here, how do you know whether you need '–',
'—', or '−'?  Or maybe you want '⸺' or even '⸻' instead (they are not
shown in the list offered by Wikipedia)?  Likewise, there are many
more quote characters than the above offers.

In general, punctuation characters fill 2 full blocks of codepoints,
so finding the one you need is more than just selecting out of less
than 20 characters someone decided for you they are all you'll need.

> Or I can push the "Latin" button and then insert any of:
> 
> A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ B b C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç D d Ď ď Đ đ Ḍ ḍ Ð ð E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ẹ ẹ Ɛ ɛ Ǝ ǝ Ə ə F f G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ H h Ĥ ĥ Ħ ħ Ḥ ḥ I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į Ị   ị J j Ĵ ĵ K k Ķ ķ L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ M m Ṃ ṃ N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ Ŋ ŋ O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ọ ọ Ő ő Ø ø Œ œ Ɔ ɔ P p Q q R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ S s Ś ś Ŝ ŝ Š š Ş ş Ș ș Ṣ ṣ ß T t Ť ť Ţ ţ Ț ț Ṭ ṭ Þ þ U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ụ ụ Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ V v W w Ŵ ŵ X x Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ Z z Ź ź Ż ż Ž ž ß Ð ð Þ þ Ŋ ŋ Ə ə

Again, this is a different use case: you need already to know your
character is one of the "Latin" characters.  And they cheat: what you
see is a subset of the characters that someone decided for you they
are all you need.  (For example, "Math and logic" has ∫, ∬, and ∭, but
not ⨌; "Latin" lacks the entire Latin Extended-B, -C, -D, and Latin
Extended Additional blocks; etc.)

IOW, the above selection is highly filtered using some unspecified
rules, and therefore it at best emulates a use case where the user has
a pretty good knowledge about what she wants to find.  And still, you
need to select out of about 300 characters.

How's that workable, except in very simple use cases?

> This is all easy to do even if I don't remember the editing interface, and unlike Emacs's C-x 8 it handles Pinyin tones, dotless i, etc., etc. This seems to be the sort of thing that RMS is asking for, and I don't see why it wouldn't work for Emacs.

It would work for Emacs.  The question is, would it be convenient for
users?

We should be able to do better than the example you show, i.e. allow
the user to define what she knows about the character she is looking
for, and then present the characters matching that description.  (I
presented earlier the provisional list of attributes I think will be
useful as part of such a description.)  We definitely shouldn't assume
we know better than the user which characters she might or might not
want the way Wikipedia does.  And we should allow the users to
leverage more accurate information, if they have it.  For example, if
you know that the character you are looking for is some form of a
Latin 'a', then we could present only those (there are 36 of them in
the current UCD).