Variable: glyphless-char-display-control

glyphless-char-display-control is a customizable variable defined in characters.el.gz.

Value

((format-control . thin-space)
 (variation-selectors . thin-space)
 (no-font . hex-code))

Documentation

List of directives to control display of glyphless characters.

Each element has the form (GROUP . METHOD), where GROUP is a symbol specifying the character group, and METHOD is a symbol specifying the method of displaying characters belonging to that group.

GROUP must be one of these symbols:
  c0-control: U+0000..U+001F, but excluding newline and TAB.
  c1-control: U+0080..U+009F.
  format-control: Characters of Unicode General Category Cf,
                    such as U+200C (ZWNJ), U+200E (LRM), but
                    excluding characters that have graphic images,
                    such as U+00AD (SHY).
  variation-selectors: U+FE00..U+FE0F, used for choosing between
                         glyph variations (e.g. Emoji vs Text
                         presentation).
  no-font: characters for which no suitable font is found.
                    For character terminals, characters that cannot
                    be encoded by terminal-coding-system or those
                    for which the terminal has no glyphs.

METHOD must be one of these symbols:
  zero-width: don't display.
  thin-space: display a thin (1-pixel width) space. On character
                terminals, display as 1-character space.
  empty-box: display an empty box.
  acronym: display an acronym of the character in a box. The
                acronym is taken from char-acronym-table, which see.
  hex-code: display the hexadecimal character code in a box.

Do not set its value directly from Lisp; the value takes effect only via a custom :set function (update-glyphless-char-display), which updates glyphless-char-display.

See also the glyphless-char face, which is used to display the visual representation of these characters.

This variable was added, or its default value changed, in Emacs 28.1.

Probably introduced at or before Emacs version 24.1.

Source Code

;; Defined in /usr/src/emacs/lisp/international/characters.el.gz
;;; Control of displaying glyphless characters.
(defcustom glyphless-char-display-control
  '((format-control . thin-space)
    (variation-selectors . thin-space)
    (no-font . hex-code))
  "List of directives to control display of glyphless characters.

Each element has the form (GROUP . METHOD), where GROUP is a
symbol specifying the character group, and METHOD is a symbol
specifying the method of displaying characters belonging to that
group.

GROUP must be one of these symbols:
  `c0-control':     U+0000..U+001F, but excluding newline and TAB.
  `c1-control':     U+0080..U+009F.
  `format-control': Characters of Unicode General Category `Cf',
                    such as U+200C (ZWNJ), U+200E (LRM), but
                    excluding characters that have graphic images,
                    such as U+00AD (SHY).
  `variation-selectors': U+FE00..U+FE0F, used for choosing between
                         glyph variations (e.g. Emoji vs Text
                         presentation).
  `no-font':        characters for which no suitable font is found.
                    For character terminals, characters that cannot
                    be encoded by `terminal-coding-system' or those
                    for which the terminal has no glyphs.

METHOD must be one of these symbols:
  `zero-width': don't display.
  `thin-space': display a thin (1-pixel width) space.  On character
                terminals, display as 1-character space.
  `empty-box':  display an empty box.
  `acronym':    display an acronym of the character in a box.  The
                acronym is taken from `char-acronym-table', which see.
  `hex-code':   display the hexadecimal character code in a box.

Do not set its value directly from Lisp; the value takes effect
only via a custom `:set'
function (`update-glyphless-char-display'), which updates
`glyphless-char-display'.

See also the `glyphless-char' face, which is used to display the
visual representation of these characters."
  :version "28.1"
  :type '(alist :key-type (symbol :tag "Character Group")
		:value-type (symbol :tag "Display Method"))
  :options '((c0-control
	      (choice (const :tag "Don't display" zero-width)
		      (const :tag "Display as thin space" thin-space)
		      (const :tag "Display as empty box" empty-box)
		      (const :tag "Display acronym" acronym)
		      (const :tag "Display hex code in a box" hex-code)))
	     (c1-control
	      (choice (const :tag "Don't display" zero-width)
		      (const :tag "Display as thin space" thin-space)
		      (const :tag "Display as empty box" empty-box)
		      (const :tag "Display acronym" acronym)
		      (const :tag "Display hex code in a box" hex-code)))
	     (format-control
	      (choice (const :tag "Don't display" zero-width)
		      (const :tag "Display as thin space" thin-space)
		      (const :tag "Display as empty box" empty-box)
		      (const :tag "Display acronym" acronym)
		      (const :tag "Display hex code in a box" hex-code)))
	     (variation-selectors
	      (choice (const :tag "Don't display" zero-width)
		      (const :tag "Display as thin space" thin-space)
		      (const :tag "Display as empty box" empty-box)
		      (const :tag "Display acronym" acronym)
		      (const :tag "Display hex code in a box" hex-code)))
	     (no-font
	      (choice (const :tag "Don't display" zero-width)
		      (const :tag "Display as thin space" thin-space)
		      (const :tag "Display as empty box" empty-box)
		      (const :tag "Display acronym" acronym)
		      (const :tag "Display hex code in a box" hex-code))))
  :set 'update-glyphless-char-display
  :group 'display)