Increasing the diversity of people who write Python (was: Benefits of unicode identifiers)

Rustom Mody rustompmody at gmail.com
Mon Nov 27 22:44:37 EST 2017


On Monday, November 27, 2017 at 10:49:35 PM UTC+5:30, Skip Montanaro wrote:
> > I strongly suspect that any recent emacs will have M-x insert-char
> > (earlier it was called ucs-insert) default bound C-x 8 RET (yeah thats clunky)
> > which will accept at the minibuffer input
> 
> I tried C-x 8 e acute TAB
> 
> and was prompted with "E-acute". I don't know why it would have
> capitalized the "e". 

Unicode codepoint names are (evidently) ALLCAPS-ASCII

Still, I plowed ahead and hit RET
> 
> which yielded an "Invalid character" message in the minibuffer.

Unicode is a million+ codepoints
Hundred thousand+ of which are assigned
This means that (as an analogy) emacs is fishing around in a 100,000 line file
which contains lines like
LATIN SMALL LETTER A:a:0x61
LATIN CAPITAL LETTER A:A:0x41
DIGIT ONE:1:0x31
... 100,000 such lines… one of which is
LATIN SMALL LETTER E WITH ACUTE:é:0xe9

[Just now fishing around I find its worse than that C-u C-x = tells me:

  character: é (displayed as é) (codepoint 233, #o351, #xe9)
  name: LATIN SMALL LETTER E WITH ACUTE
  old-name: LATIN SMALL LETTER E ACUTE
  general-category: Ll (Letter, Lowercase)

So those hundred thousand chars can have multiple names!!
And that constitutes the search space
]

So now coming to your attempt:

[ Writing this mail, Ive finally done:
(global-set-key (kbd "<f9>") 'insert-char)
which allows me to use F9 instead of the clunky C-x 8 RET
I'll assume that binding following
]

If I type
F9*e acuteTAB
I get 121 possibilities:

CANADIAN SYLLABICS FINAL DOUBLE ACUTE (ᐥ)
COMBINING DOTTED ACUTE ACCENT (᷁)
COMBINING DOUBLE ACUTE ACCENT (̋)
CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE (Ӳ)
CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE (ӳ)
DEVANAGARI ACUTE ACCENT (॔) 	DOUBLE ACUTE ACCENT (˝)
GREEK UPSILON WITH ACUTE AND HOOK SYMBOL (ϓ)
LATIN CAPITAL LETTER A ACUTE (Á)
LATIN CAPITAL LETTER A WITH ACUTE (Á)
LATIN CAPITAL LETTER A WITH BREVE AND ACUTE (Ắ)
LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE (Ấ)
LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE (Ǻ)
LATIN CAPITAL LETTER AE WITH ACUTE (Ǽ)
LATIN CAPITAL LETTER C ACUTE (Ć)
LATIN CAPITAL LETTER C WITH ACUTE (Ć)
LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE (Ḉ)
LATIN CAPITAL LETTER E ACUTE (É)
LATIN CAPITAL LETTER E WITH ACUTE (É)
LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE (Ế)
LATIN CAPITAL LETTER E WITH MACRON AND ACUTE (Ḗ)
LATIN CAPITAL LETTER G WITH ACUTE (Ǵ)
LATIN CAPITAL LETTER I ACUTE (Í)
LATIN CAPITAL LETTER I WITH ACUTE (Í)
LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE (Ḯ)
LATIN CAPITAL LETTER K WITH ACUTE (Ḱ)
LATIN CAPITAL LETTER L ACUTE (Ĺ)
LATIN CAPITAL LETTER L WITH ACUTE (Ĺ)
LATIN CAPITAL LETTER M WITH ACUTE (Ḿ)
LATIN CAPITAL LETTER N ACUTE (Ń)
LATIN CAPITAL LETTER N WITH ACUTE (Ń)
LATIN CAPITAL LETTER O ACUTE (Ó)
LATIN CAPITAL LETTER O DOUBLE ACUTE (Ő)
LATIN CAPITAL LETTER O WITH ACUTE (Ó)
LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE (Ố)
LATIN CAPITAL LETTER O WITH DOUBLE ACUTE (Ő)
LATIN CAPITAL LETTER O WITH HORN AND ACUTE (Ớ)
LATIN CAPITAL LETTER O WITH MACRON AND ACUTE (Ṓ)
LATIN CAPITAL LETTER O WITH STROKE AND ACUTE (Ǿ)
LATIN CAPITAL LETTER O WITH TILDE AND ACUTE (Ṍ)
LATIN CAPITAL LETTER P WITH ACUTE (Ṕ)
LATIN CAPITAL LETTER R ACUTE (Ŕ)
LATIN CAPITAL LETTER R WITH ACUTE (Ŕ)
LATIN CAPITAL LETTER S ACUTE (Ś)
LATIN CAPITAL LETTER S WITH ACUTE (Ś)
LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE (Ṥ)
LATIN CAPITAL LETTER U ACUTE (Ú)
LATIN CAPITAL LETTER U DIAERESIS ACUTE (Ǘ)
LATIN CAPITAL LETTER U DOUBLE ACUTE (Ű)
LATIN CAPITAL LETTER U WITH ACUTE (Ú)
LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE (Ǘ)
LATIN CAPITAL LETTER U WITH DOUBLE ACUTE (Ű)
LATIN CAPITAL LETTER U WITH HORN AND ACUTE (Ứ)
LATIN CAPITAL LETTER U WITH TILDE AND ACUTE (Ṹ)
LATIN CAPITAL LETTER W WITH ACUTE (Ẃ)
LATIN CAPITAL LETTER Y ACUTE (Ý)
LATIN CAPITAL LETTER Y WITH ACUTE (Ý)
LATIN CAPITAL LETTER Z ACUTE (Ź)
LATIN CAPITAL LETTER Z WITH ACUTE (Ź)
LATIN SMALL LETTER A ACUTE (á)
LATIN SMALL LETTER A WITH ACUTE (á)
LATIN SMALL LETTER A WITH BREVE AND ACUTE (ắ)
LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE (ấ)
LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE (ǻ)
LATIN SMALL LETTER AE WITH ACUTE (ǽ)
LATIN SMALL LETTER C ACUTE (ć)
LATIN SMALL LETTER C WITH ACUTE (ć)
LATIN SMALL LETTER C WITH CEDILLA AND ACUTE (ḉ)
LATIN SMALL LETTER E ACUTE (é)
LATIN SMALL LETTER E WITH ACUTE (é)
LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE (ế)
LATIN SMALL LETTER E WITH MACRON AND ACUTE (ḗ)
LATIN SMALL LETTER G WITH ACUTE (ǵ)
LATIN SMALL LETTER I ACUTE (í)
LATIN SMALL LETTER I WITH ACUTE (í)
LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE (ḯ)
LATIN SMALL LETTER K WITH ACUTE (ḱ)
LATIN SMALL LETTER L ACUTE (ĺ)
LATIN SMALL LETTER L WITH ACUTE (ĺ)
LATIN SMALL LETTER M WITH ACUTE (ḿ)
LATIN SMALL LETTER N ACUTE (ń)
LATIN SMALL LETTER N WITH ACUTE (ń)
LATIN SMALL LETTER O ACUTE (ó)
LATIN SMALL LETTER O DOUBLE ACUTE (ő)
LATIN SMALL LETTER O WITH ACUTE (ó)
LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE (ố)
LATIN SMALL LETTER O WITH DOUBLE ACUTE (ő)
LATIN SMALL LETTER O WITH HORN AND ACUTE (ớ)
LATIN SMALL LETTER O WITH MACRON AND ACUTE (ṓ)
LATIN SMALL LETTER O WITH STROKE AND ACUTE (ǿ)
LATIN SMALL LETTER O WITH TILDE AND ACUTE (ṍ)
LATIN SMALL LETTER P WITH ACUTE (ṕ)
LATIN SMALL LETTER R ACUTE (ŕ)
LATIN SMALL LETTER R WITH ACUTE (ŕ)
LATIN SMALL LETTER S ACUTE (ś)
LATIN SMALL LETTER S WITH ACUTE (ś)
LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE (ṥ)
LATIN SMALL LETTER U ACUTE (ú)
LATIN SMALL LETTER U DIAERESIS ACUTE (ǘ)
LATIN SMALL LETTER U DOUBLE ACUTE (ű)
LATIN SMALL LETTER U WITH ACUTE (ú)
LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE (ǘ)
LATIN SMALL LETTER U WITH DOUBLE ACUTE (ű)
LATIN SMALL LETTER U WITH HORN AND ACUTE (ứ)
LATIN SMALL LETTER U WITH TILDE AND ACUTE (ṹ)
LATIN SMALL LETTER W WITH ACUTE (ẃ)
LATIN SMALL LETTER Y ACUTE (ý)
LATIN SMALL LETTER Y WITH ACUTE (ý)
LATIN SMALL LETTER Z ACUTE (ź)
LATIN SMALL LETTER Z WITH ACUTE (ź)
MODIFIER LETTER ACUTE (ˊ)
MODIFIER LETTER ACUTE ACCENT (ˊ)
MODIFIER LETTER LOW ACUTE (ˏ)
MODIFIER LETTER LOW ACUTE ACCENT (ˏ)
MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT (˶)
NON-SPACING DOUBLE ACUTE (̋)
SPACING DOUBLE ACUTE (˝)





Clearly reducing the search space seems called for!

Adding a latin in front to now search for
latin*e acute
And then Tab expanding gives
LATIN *L LETTER ACUTE

[Why did the E disappear?? Dunno]

Put it back and TAB gives
LATIN *AL LETTER E ACUTE

Tab once more the choices now are these 7 and more manageable??

LATIN CAPITAL LETTER E ACUTE (É)
LATIN CAPITAL LETTER E WITH ACUTE (É)
LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE (Ế)
LATIN CAPITAL LETTER E WITH MACRON AND ACUTE (Ḗ)
LATIN SMALL LETTER E ACUTE (é)
LATIN SMALL LETTER E WITH ACUTE (é)
LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE (ế)
LATIN SMALL LETTER E WITH MACRON AND ACUTE (ḗ)



More information about the Python-list mailing list