What is different about Emacs 28?
Emacs 28 has too many new features and changes to list all of them here. We list below a small selection; consult the Emacs NEWS file (C-h n) for the full list of changes in Emacs 28.
- Emacs now optionally supports native compilation of Lisp files. This can improves performance significantly in some cases. To enable this, configure Emacs with the
--with-native-compilationoption. - The new NonGNU ELPA archive is enabled by default alongside GNU ELPA. Thus, packages on NonGNU ELPA will appear by default in the list shown by the
list-packagescommand. - The Cairo graphics library is now used by default if present.
- On GNU/Linux, Emacs now supports loading Secure Computing filters. To use this feature, invoke Emacs with the
--seccomp=filecommand-line switch, wherefilenames a binary file that defines the filtering. See the manual page of theseccompsystem call for more details. - The new themes ‘
modus-vivendi’ and ‘modus-operandi’ have been added. They are designed to conform with the highest standard for color-contrast accessibility (WCAG AAA). - On capable systems, Emacs now correctly displays Emoji and Emoji sequences by default, provided that a suitable font is available.
- New system for displaying documentation for groups of functions (M-x shortdoc-display-group RET).
- Emacs can now support 24-bit color text-mode terminals even if their terminfo database doesn’t state this support in a standard way. Set the
COLORTERMenvironment variable to the value ‘truecolor’ to activate this. - The
strike-throughface attribute is now supported on capable text-mode terminals. xterm-mouse-modesupports TTY menus.- A new minor mode
context-menu-modecausesmouse-3(a.k.a. “right-clicks”) of the mouse to pop up context-dependent menus. - Prefix commands to control the display of the results of the next command. C-x 4 4 command displays the result of
commandin a new window. C-x 5 5 command displays the results ofcommandin a new frame. - Emacs now supports “transient” input methods. A transient input method is enabled for inserting a single character, and is then automatically disabled. Select a transient input method with C-u C-x \; enable it (for inserting a single character) with C-x \. New input methods
compose(based on X Window System Multi_key sequences) andiso-translare especially convenient with this feature, when you need to insert a single special character. - M-y, when invoked after a command that is not a yank command, allows selection of one of the previous kills.
- New minor mode
repeat-modeenables repeating commands with fewer keystrokes. - Among the many internal changes in this release, we would like to highlight that all files in the tree now use
lexical-binding.