Emacs: Xah Math Input Mode (xah-math-input.el)

By Xah Lee. Date: . Last updated: .

xah-math-input.el is a emacs minor mode for inputting math symbols, emoji, or any Unicode characters.

xah math input mode 2021-08-02
M-x xah-math-input-list-math-symbols

Get it by Donation

Goto paypal.com, send $32 to Xah@XahLee.org (be sure to include your correct email address. I need that to send it to you.)

Write in message area: xah-math-input.el

How to Use

Alt+x global-xah-math-input-mode
Toggle on/off for all buffers.
Alt+x xah-math-input-mode
Toggle on/off for current buffer.

In lisp code for your emacs init file:

(global-xah-math-input-mode 1) ; turn on globally
(global-xah-math-input-mode 0) ; turn off globally

Type inf, then press Shift+Space, then it becomes .

For the complete up-to-date list, Alt+x xah-math-input-list-math-symbols

The mode supports over 600 unique symbols, and you can add your own. Any unicode character, including emoji.

XML Abbreviations

All XML character entity abbrevs are supported. For example


[see HTML XML Entities]

Mathematica Abbrev

Most Mathematica's abbreviation is also supported. For example:


Unicode by Decimal Number

Unicode by decimal can be entered like this:


(Note: alpha has abbrev of “a”. All Greek Alphabet has single letter abbrev.)

[see Unicode: Greek Alphabet α β γ δ ε ζ η]

Unicode by Hexadecimal

Unicode by hexadecimal can be entered like this:


Change Activation Key

To change the activation key, put this in your Emacs Init File:

(require 'xah-math-input)
(define-key xah-math-input-keymap (kbd "S-SPC") nil) ; unset Shift+space
(define-key xah-math-input-keymap (kbd "<f8>") 'xah-math-input-change-to-symbol)

Add Abbrev, Add Symbol

To add/change a abbrev, Put this in your Emacs Init File:

(require 'xah-math-input)
(puthash "floral" "❦" xah-math-input-abrvs)

To find symbols, use Unicode Search 😄.

Get Unicode Font

For best result, you'll need a font that support Unicode. I recommend DejaVu Sans Mono. [see Best Unicode Fonts for Programer]

xah-math-input.el was named xmsi-mode.el