Emacs 29 (Released 2023-07)
Emacs NEWS Files
Emoji
New commands for inserting Emoji. They have Ctrl+x 8 e prefix key.
describe-mode now shows minor modes list to bottom
describe-mode
now shows global minor modes list to bottom.

help-mode now shows keybinding in monospace font and with border.

by default on Microsoft Windows, the monospace font used is bitmap courier. very ugly.
new variable major-mode-remap-alist , now easier to remap modes.
- help-enable-variable-value-editing
-
when t, you can edit variable value when using
describe-variable
.to edit, press e at the value point.
(setq help-enable-variable-value-editing t)
Alt+x
help-quick
shows a short cheatlist of keys.

help buffer, type i to jump to emacs/elisp manual
e.g.
Alt+x describe-function
dired, then press i.
Emacs 29 Byte Compile Unescaped Single Quote Warning
revamp on keybinding functions
- ***
where-is-internal
can now filter events marked as non key events. If a command maps to a key binding like '[some-event]', andsome-event
has a symbol plist containing a non-nilnon-key-event
property, then that binding is ignored bywhere-is-internal
. - *** New functions for defining and manipulating keystrokes.
These all take the syntax defined by
key-valid-p
, which is basically the same syntax as the one accepted by the 'kbd' macro. None of the older functions have been deprecated or altered, but they are now de-emphasized in the documentation, and we encourage Lisp programs to switch to these new functions. - new
keymap-set
• olddefine-key
- new
keymap-global-set
• oldglobal-set-key
- new
keymap-local-set
• oldlocal-set-key
- new
keymap-global-unset
• oldglobal-unset-key
- new
keymap-local-unset
• oldlocal-unset-key
- new
keymap-substitute
• oldsubstitute-key-definition
- new
keymap-set-after
• olddefine-key-after
- new
keymap-lookup
• oldlookup-key
andkey-binding
- new
keymap-local-lookup
• oldlocal-key-binding
- new
keymap-global-lookup
• oldglobal-key-binding
- ***
define-key
now takes an optional REMOVE argument. If non-nil, remove the definition from the keymap. This is subtly different from setting a definition to nil: when the keymap has a parent such a definition will shadow the parent's definition.
tree-sitter
- tree-sitter is now part of emacs. it's a parser for text editors. https://tree-sitter.github.io/tree-sitter/
you have to install grammar files.
new modes using tree-sitter:
typescript-ts-mode
tsx-ts-mode
c-ts-mode
c++-ts-mode
java-ts-mode
python-ts-mode
css-ts-mode
json-ts-mode
csharp-ts-mode
bash-ts-mode
dockerfile-ts-mode
cmake-ts-mode
toml-ts-mode
go-ts-mode
go-mod-ts-mode
yaml-ts-mode
rust-ts-mode
ruby-ts-mode
Eglot Interface for Language Server Protocol (LSP)
Eglot package is now part of emacs.
eglot
.
this is mostly for emacs lisp coders to write major modes using LSP.
author is João Távora (aka joaotavora) https://github.com/joaotavora/eglot
misc notes
use-package
now is part of emacs. it is for managing config for packages.
- new functions, for installing packages directly.
package-vc-install
package-vc-update
package-vc-update-all
- new
sqlite-mode
. works with SQLite database.
- new option
-x
to run elisp script, sans loading init. - new option
--init-directory
- view image now support webp format
- emacs now support multi-touch touchpads, such as on laptop.
- tree-sitter, a fantastic thing, i'll be spending time on it in coming months.
- https://tree-sitter.github.io/tree-sitter/
here's some collection of articles related to it.
misc notes
- composition-break-at-point
-
variable.
If true,
prevent auto-composition of characters around cursor.
This means you can edit composed unicode chars such as emoji with skin color. e.g. Unicode Variation Selector
(setq composition-break-at-point t)
- switch-to-prev-buffer-skip-regexp
-
Buffers that
switch-to-prev-buffer
andswitch-to-next-buffer
should skip. new in emacs 29.
xah-next-user-buffer
2023-06-26 thanks to this reference i have used. [Emacs 29 is nigh! What can we expect? By Lucien Cartier-Tilet (Aka Phundrak). At https://blog.phundrak.com/emacs-29-what-can-we-expect/ ]