From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.devel Subject: RE: Entering Unicode characters Date: Mon, 25 Jan 2016 11:28:43 -0800 (PST) Message-ID: <4c4fc77e-f703-4a9a-96a6-fa384fd8ebf8@default> References: <83twmkkv16.fsf@gnu.org> <87wpqxbi4h.fsf@mbork.pl> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1453750164 10371 80.91.229.3 (25 Jan 2016 19:29:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 25 Jan 2016 19:29:24 +0000 (UTC) Cc: Andrew Hyatt , johnw@gnu.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Marcin Borkowski , rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 25 20:29:10 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aNmp3-000843-7u for ged-emacs-devel@m.gmane.org; Mon, 25 Jan 2016 20:29:09 +0100 Original-Received: from localhost ([::1]:40463 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNmp2-00054f-Ks for ged-emacs-devel@m.gmane.org; Mon, 25 Jan 2016 14:29:08 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49311) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNmoo-00054Z-3r for emacs-devel@gnu.org; Mon, 25 Jan 2016 14:28:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aNmoj-0006mm-0S for emacs-devel@gnu.org; Mon, 25 Jan 2016 14:28:54 -0500 Original-Received: from aserp1040.oracle.com ([141.146.126.69]:50757) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNmoi-0006mf-QM; Mon, 25 Jan 2016 14:28:48 -0500 Original-Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u0PJSkIj028370 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 25 Jan 2016 19:28:46 GMT Original-Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u0PJSjKY002716 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Mon, 25 Jan 2016 19:28:45 GMT Original-Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0122.oracle.com (8.14.4/8.13.8) with ESMTP id u0PJSjZB007218; Mon, 25 Jan 2016 19:28:45 GMT In-Reply-To: <87wpqxbi4h.fsf@mbork.pl> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6691.5000 (x86)] X-Source-IP: aserv0021.oracle.com [141.146.126.233] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 141.146.126.69 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:198806 Archived-At: > > We need a way to enter any Unicode character that is EASY to use > > and does not require using its official name. >=20 > Have you heard about autocompletion? >=20 > 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 menti= on, 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. Helpfu= l 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=097D=09} RIGHT CURLY BRACKET=097D=09} 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. |=20 | (icicle-read-char-by-name PROMPT &optional NAMES) |=20 | 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. |=20 | You can use completion against the Unicode name of the character. |=20 | In Icicle mode, if `icicle-read-char-by-name-multi-completion-flag' is | non-nil: |=20 | * The Unicode code point of the char and the char itself appear next | to the char name in `*Completions*' - WYSIWYG. |=20 | * 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. |=20 | * 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. |=20 | If you use a dedicated `*Completions*' frame, then the font used in | `*Completions*' is the same as the frame from which you invoked | completion. |=20 | If you use library `doremi-frm.el' then you can increase the font size | for `*Completions*' dynamically using `C-x -'. |=20 | 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. |=20 | 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). `----