2009-07-28

Emacs 23(.1) has been released! After only just over two years since the
previous version, emacs 23 has been released on July 29 2009. Time to
celebrate! And a big thanks all the talented hackers that made it possible!

Emacs 23 brings many new features. Some of those have been discussed before
in emacs-fu, and of course you can get the full list from the NEWS-file
(C-h n). This is just a list of some of the highlights, in particular the
end-user-visible ones. Let's go through them - of course I cannot mention all
of them, so feel free to add your favorite one in the comments.

fonts & anti-aliasing

Finally, emacs 23 brings support for anti-aliased fonts to X (Mac/Windows
users have had this for a while). If you're running emacs on X, this one
change is enough to never want to go back to an older version of Emacs
again.

support for D-Bus and Zeroconf

You can now call other services on the desktop using the DBUS IPC system
(popular on X); using d-bus: an example shows how to communicate with the
Tomboy note taker program from emacs. As more and more desktop services
are accessible using D-BUS, this offers great opportunities for better
integrating emacs with the rest of the desktop. For example, one could
imagine that emacs could communicate with a network manager when it needs a
connection. Or it could show a desktop notification when an appointment is
near. And all without adding hard dependencies or calling external
binaries.

Using Zeroconf is also quite easy; for example, to get a list of all
zeroconf-support printers, you could do something silly like:

to insert a list of the available printers in your current buffer. As with
D-Bus, it's really an enabler for a lot of cool things.

support for 'headless' emacs-daemon

If you have a lot of support packages, emacs startup can be a bit slow.
However, emacs 23 brings emacs --daemon, which enables you to start emacs
in the background (for example when you log in). You can instantly pop up
new emacs windows (frames) with emacsclient. Of course, you could already
have an emacs 'server' in older versions, but being able to start it in the
background makes this a much nicer solution.

Emacs now support Xembed

This enables you to embed emacs in other programs (on X) using
XEmbed. Haven't played with that yet. There is some more information in
EmacsWiki/Xembed.

Support for frame opacity

You can now make you emacs frames transparent. Discussed before in
transparent emacs. Not sure how useful this is, but it surely looks nice :)

Internationalization

Emacs's character set is a superset of Unicode, with about four times
the space available. That should be enough for the foreseeable
future… There are also many new character sets available, as well as new
language environments, such as Chinese-GB18030, Khmer, Bengali, Punjabi,
Gujarati, Oriya, Telugu, Sinhala, and TaiViet.

Note that, internally, emacs uses UTF-8 now.

New defaults

Screen motion now goes by screen lines by default, that is when you
move the cursor up or down, it follows the line as you see them. Nice.

Transient mark mode (visible selection) is now on by default, so no need
for (transient-mark-mode t) in your .emacs anymore. However, you
still need to put (delete-selection-mode t) if you like replace the
current selection with your typing.

Also shift-select mode is enabled by default, so you can select with
shift + the arrow keys.

Out of curiosity, have you (or anyone reading) had redraw problems in Emacs 23 on X? I don't have any if I run Emacs 23 in console, but if I use emacs 23 gtk I have all kinds of artifacts. Unusably distracting.

I tried filing a bug report (M-x report-emacs-bug) but I don't think it ever made it. :(