emacs-devel
[Top][All Lists]
Advanced

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

RE: Entering Unicode characters


From: Drew Adams
Subject: RE: Entering Unicode characters
Date: Mon, 25 Jan 2016 11:28:43 -0800 (PST)

> > We need a way to enter any Unicode character that is EASY to use
> > and does not require using its official name.
> 
> Have you heard about autocompletion?
> 
> Sorry, could not resist.  In fact, I agree that C-x 8 RET with stock
> Emacs is not the best experience, but either Icicles (which I used
> previously) or Ivy (which I use now) make it much, much better.  Icicles
> especially, since it displays the characters next to their names.  Ivy
> is much faster, OTOH.

Icicles too can be instantaneous if you turn off the feature that you mention,
of showing the code points and characters themselves next to the name.

To do that, set `icicle-read-char-by-name-multi-completion-flag' to nil.

These are not just annotations, BTW - you can complete against any of
the 3: name, code point, or char, or any combination of them.  Why might
you complete against the character?  To see its name or code point.  Helpful
if the char is easy to enter.  E.g., what are the name and code point of `}'?
Type it and you see these two (equivalent) candidates:

 CLOSING CURLY BRACKET  7D      }
 RIGHT CURLY BRACKET    7D      }

You can also speed things up during cycling if you sacrifice display of
the current candidate's info in the mode line.  To do that, set
`icicle-help-in-mode-line-delay' to 0.

The doc string of `icicle-read-char-by-name' tells you all of this:

,----
| icicle-read-char-by-name is a compiled Lisp function.
| 
| (icicle-read-char-by-name PROMPT &optional NAMES)
| 
| Read a character by its Unicode name or hex number string.
| Display PROMPT and read a string that represents a character by its
| Unicode property `name' or `old-name'.  Return the char as a number.
| 
| You can use completion against the Unicode name of the character.
| 
| In Icicle mode, if `icicle-read-char-by-name-multi-completion-flag' is
| non-nil:
| 
| * The Unicode code point of the char and the char itself appear next
|   to the char name in `*Completions*' - WYSIWYG.
| 
| * The completion candidate is a multi-completion.  Its first part is
|   the char name.  Its second part is the code point, as a hexadecimal
|   numeral.  Its third part is the character.  This means that you can
|   alternatively type the code point or the character to see what the
|   name is.  You can complete the name or the code point, or both.
| 
| * When you cycle among candidates, regardless of whether buffer
|   `*Completions*' is shown, the current character and its code point
|   are shown in the mode line (provided user option
|   `icicle-help-in-mode-line-delay' is greater than zero).  The code
|   point is shown in hexadecimal, octal, and decimal notation.
| 
| If you use a dedicated `*Completions*' frame, then the font used in
| `*Completions*' is the same as the frame from which you invoked
| completion.
| 
| If you use library `doremi-frm.el' then you can increase the font size
| for `*Completions*' dynamically using `C-x -'.
| 
| As an alternative to completing the Unicode name or code point, you
| can just input the code point as a hexidecimal numeral or a number in
| hash notation: #o21430 for octal, #x2318 for hex, or #10r8984 for
| decimal.
| 
| Non-nil optional arg NAMES is an alist of names to use in place of the
| value returned by `icicle-ucs-names'.  It must have the same form as
| such a return value: (CHAR-NAME . CHAR-CODE).
`----



reply via email to

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