Homepage: https://www.emacswiki.org/emacs/download/apu.el
Author: Drew Adams
Updated:
Apropos Unicode characters
Apropos Unicode characters.
Command `apropos-char' (aka `apropos-unicode', aka `apu-chars')
describes the Unicode characters that match an apropos pattern you
specify: a regexp or a space-separated list of words. The
characters whose names or old names match are shown in a help
buffer, along with the names (or old names) and code points
(decimal and hex).
Command `describe-chars-in-region' (aka `apu-chars-in-region')
describes the Unicode characters that are in the region. By
default, it shows each distinct character only once. With a
prefix argument it has a line describing each occurrence of each
character in the region.
By default, `describe-chars-in-region' includes characters with
names that are not known to Emacs. This includes Private Use Area
(PUA) characters. If you customize option
`apu-include-unnamed-chars-flag' to `nil' then such characters are
excluded, and they are reported in the echo area (and buffer
`*Messages*').
For each of these commmands, in the help buffer describing the
characters you can use the following keys to act on the character
described on the current line:
* `RET' or `mouse-2' - see detailed information about it.
* `^' - insert it in the buffer where you invoked
`apropos-unicode'.
* `c' - define a command to insert the character, having the same
name. (You need library `ucs-cmds.el' for this.)
* `i' - google for more information about it.
* `k' - globally bind a key to insert it.
* `l' - locally bind a key to insert it.
* `z' - show it in a zoomed tooltip.
* `C-y' - copy it to the `kill-ring'.
* `M-y' - copy it to the secondary selection.
You can sort the list of matches by any of the columns, up or
down, by clicking its heading.
For command `apropos-unicode', you can use options
`apu-match-words-exactly-flag' and
`apu-match-two-or-more-words-flag' to specify your preference for
the kind of word matching to use by default. You can match each
word or only any two or more words. If matching each word, you
can match them as substrings or as full words. `C-c RET' in the
help buffer tells you what the current match type is.
You can use `C-c C-n' to refresh the matches, cycling among these
word-match methods. There are also separate commands for each
kind of matching:
`C-c C-s' - Use substring matching
`C-c 2' - Use pairwise full-word matching (match two+ words)
`C-c C-w' - Use full-word matching for each list entry
Non-`nil' option `apu-match-only-displayable-chars-flag' means
that commands such as `apropos-unicode' display only Unicode chars
that can be displayed in the current context. Non-displayable
chars are those that do not have displayable glyphs, in general,
and those for which you do not have a font installed that can
display them. Displayability of a character is determined by
standard Emacs function `char-displayable-p'.
NOTE:
Starting with Emacs 25, predicate `char-displayable-p' can be
EXTREMELY SLOW if the new variable
`inhibit-compacting-font-caches' is `nil', which it is by
default, and if you have many, or large, fonts installed. (This
seems to be the case if you have MS Windows TrueType fonts
installed, for instance.) For this reason, the default value of
`apu-match-only-displayable-chars-flag' is `nil' for Emacs 25
and later.
If you want to be able to exclude non-displayable chars in Emacs
25+, then set `apu-match-only-displayable-chars-flag' to
non-`nil'. If you find that this makes APU commands such as
`apropos-char' extremely slow then set variable
`inhibit-compacting-font-caches' to `t'.
Commands defined here:
`apropos-char', `apu-chars-in-region', `apropos-unicode',
`apu-char-codepoint-at-point', `apu-char-name-at-point',
`apu-chars', `apu-chars-matching-full-words',
`apu-chars-matching-two-or-more-words',
`apu-chars-matching-words-as-substrings', `apu-chars-narrow',
`apu-chars-next-match-method', `apu-copy-char-at-point-as-kill',
`apu-copy-char-here-as-kill',
`apu-copy-char-at-point-to-second-sel',
`apu-copy-char-here-to-second-sel', `apu-define-insert-command',
`apu-global-set-insertion-key', `apu-google-char',
`apu-local-set-insertion-key', `apu-mode',
`apu-chars-refresh-matching-as-substrings',
`apu-chars-refresh-matching-full-words',
`apu-chars-refresh-matching-two-or-more-words',
`apu-chars-refresh-with-next-match-method',
`apu-match-type-msg', `apu-revert-buffer',
`apu-show-char-details', `apu-zoom-char-here',
`apu-zoom-char-at-point', `describe-chars-in-region'.
User options defined here:
`apu-include-unnamed-chars-flag',
`apu-match-only-displayable-chars-flag',
`apu-match-two-or-more-words-flag',
`apu-match-words-exactly-flag', `apu-synonyms'.
Non-interactive functions defined here:
`apu-add-to-pats+bufs', `apu-buf-name-for-matching',
`apu-char-at-point', `apu-char-displayable-p', `apu-char-here',
`apu-char-name', `apu-char-names', `apu-char-name-here',
`apu-char-string-here', `apu-chars-in-region-1',
`apu-chars-narrow-1', `apu-chars-read-pattern-arg',
`apu-compute-matches', `apu-copy-char-to-second-sel',
`apu-filter', `apu-full-word-match', `apu-get-a-hash-key',
`apu-get-hash-keys', `apu-hash-table-to-alist',
`apu-make-tablist-entry', `apu-print-apropos-matches',
`apu-print-chars', `apu-remove-if-not', `apu-sort-char',
`apu-substring-match', `apu-tablist-match-entries'.
Internal variables defined here:
`apu--buffer-invoked-from', `apu--chars', `apu--matches',
`apu--match-two-or-more', `apu--match-type',
`apu--match-words-exactly', `apu--orig-buffer',
`apu--pats+bufs', `apu--patterns', `apu--patterns-not',
`apu--refresh-p', `apu--unnamed-chars',
`apu-latest-pattern-set'.