WEBVTT
00:00.003 --> 00:01.519
I'm Sacha Chua, and here are
00:01.519 --> 00:03.754
ten Emacs News highlights for 2021.
00:03.754 --> 00:05.305
If you want to follow the links,
00:05.305 --> 00:06.846
check out the wiki page at
00:06.846 --> 00:11.024
https://emacsconf.org/2021/talks/news/ .
00:11.024 --> 00:13.442
1. The Emacs developers are currently
00:13.442 --> 00:15.346
working on Emacs 28.1,
00:15.346 --> 00:17.119
which will be the next major release.
00:17.119 --> 00:18.442
Native compilation should
00:18.442 --> 00:19.959
make everything way faster,
00:19.959 --> 00:21.476
and emoji support will probably
00:21.476 --> 00:22.549
make things more fun. 😎👍
00:22.549 --> 00:25.133
John Wiegley will share more Emacs 28 details
00:25.133 --> 00:26.913
in his update, so check out his talk.
00:26.913 --> 00:28.783
Andrea Corallo's giving a talk
00:28.783 --> 00:30.418
on native compilation too.
00:30.418 --> 00:31.206
2.
00:31.206 --> 00:33.732
Org Mode is now at version 9.5.
00:33.732 --> 00:35.086
New features include
00:35.086 --> 00:36.935
a library for managing citations,
00:36.935 --> 00:38.414
asynchronous session support
00:38.414 --> 00:39.375
for code blocks,
00:39.375 --> 00:40.342
and better control
00:40.342 --> 00:41.595
of your agenda's appearance.
00:41.595 --> 00:43.372
If you've been getting your Org packages
00:43.372 --> 00:44.506
from Org ELPA,
00:44.506 --> 00:46.128
you can update your configuration
00:46.128 --> 00:47.896
to get Org from GNU ELPA
00:47.896 --> 00:50.155
and org-contrib from NonGNU ELPA.
00:50.155 --> 00:52.278
The new release of the Org Roam package
00:52.278 --> 00:54.185
should be a faster and more consistent way
00:54.185 --> 00:56.060
to use Org to manage a knowledgebase,
00:56.060 --> 00:58.423
and org-roam-ui looks pretty snazzy.
00:58.423 --> 01:00.531
The best way to keep up with Org changes
01:00.531 --> 01:02.556
is to check out the blog This Month in Org.
01:02.556 --> 01:03.439
3.
01:03.439 --> 01:05.469
New Magit major release!
01:05.469 --> 01:07.781
Jonas Bernoulli has split some functionality
01:07.781 --> 01:09.557
into other packages so that
01:09.557 --> 01:11.719
Emacs Lisp developers can use them, such as
01:11.719 --> 01:14.049
magit-section, transient, and forge.
01:14.049 --> 01:16.502
Here's an example of using magit-section
01:16.502 --> 01:17.773
to manage groups of buffers.
01:17.773 --> 01:19.333
You can learn more about Transient
01:19.333 --> 01:20.842
in the talk on self-describing
01:20.842 --> 01:23.538
smart domain-specific languages or DSLs.
01:23.538 --> 01:24.320
4.
01:24.320 --> 01:26.545
In terms of smaller packages, there's been
01:26.545 --> 01:28.625
a lot of activity around completion.
01:28.625 --> 01:30.292
Karthik has a great diagram,
01:30.292 --> 01:32.459
and Prot explains how things work together.
01:32.459 --> 01:34.414
I think the idea is that instead of having
01:34.414 --> 01:36.066
one large completion system
01:36.066 --> 01:38.344
like Helm or Icicles, you can choose
01:38.344 --> 01:40.110
a few different, smaller packages
01:40.110 --> 01:41.869
and configure them to work together.
01:41.869 --> 01:43.129
If you're curious about this,
01:43.129 --> 01:45.159
you might start with either selectrum
01:45.159 --> 01:47.871
or vertico, which are both completion interfaces,
01:47.871 --> 01:50.443
add marginalia for more information,
01:50.443 --> 01:52.222
and try consult for many useful
01:52.222 --> 01:53.233
completing commands.
01:53.233 --> 01:54.279
There are so many options,
01:54.279 --> 01:55.867
so it might be useful to check out
01:55.867 --> 01:56.714
some discussions.
01:56.714 --> 01:57.477
5.
01:57.477 --> 01:59.531
Embark is usually mentioned as part of
01:59.531 --> 02:00.607
that group of packages,
02:00.607 --> 02:02.196
but it's well worth looking into
02:02.196 --> 02:03.895
even if you use a different system.
02:03.895 --> 02:06.417
Embark lets you have context-sensitive shortcuts
02:06.417 --> 02:08.796
that work on things in buffers, minibuffers,
02:08.796 --> 02:10.768
and even collections of things.
02:10.768 --> 02:11.737
You can also use it
02:11.737 --> 02:12.912
when you start doing one command
02:12.912 --> 02:15.012
and then decide to do a different one instead.
02:15.012 --> 02:16.271
For more ideas, check out
02:16.271 --> 02:17.495
Fifteen Ways to Use Embark.
02:17.495 --> 02:18.285
6.
02:18.285 --> 02:20.163
Now that there are Emacs Lisp bindings
02:20.163 --> 02:22.139
for tree-sitter, we can work more easily
02:22.139 --> 02:23.799
with the structure of code instead of
02:23.799 --> 02:25.461
just using regular expressions.
02:25.461 --> 02:26.209
Check out the talk
02:26.209 --> 02:27.804
on Tree-edit and structural editing
02:27.804 --> 02:28.593
to learn more.
02:28.593 --> 02:30.056
You can use tree-sitter for
02:30.056 --> 02:31.951
intelligent snippets that get information
02:31.951 --> 02:33.169
from the code around them,
02:33.169 --> 02:35.064
editing Lisp expressions,
02:35.064 --> 02:37.401
and navigating text objects in Evil mode.
02:37.401 --> 02:39.670
(That's when Emacs is pretending to be Vi.)
02:39.670 --> 02:42.563
Dynamic modules help us add more to Emacs
02:42.563 --> 02:44.388
than Emacs Lisp easily offers,
02:44.388 --> 02:46.804
such as structural editing in OCaml
02:46.804 --> 02:48.729
and using Rust to figure out parentheses
02:48.729 --> 02:50.086
and indentation for Lisp.
02:50.086 --> 02:50.999
If you're curious,
02:50.999 --> 02:51.923
check out the talk on
02:51.923 --> 02:54.336
Extending Emacs in Rust with Dynamic Modules.
02:54.336 --> 02:55.239
7.
02:55.239 --> 02:57.294
Collaborative editing is now much easier
02:57.294 --> 02:59.890
since the CRDT package is in GNU ELPA.
02:59.890 --> 03:01.632
It allows multiple people to edit
03:01.632 --> 03:03.285
the same file over the network,
03:03.285 --> 03:05.025
using their own Emacs.
03:05.025 --> 03:06.850
This means you can keep your own config
03:06.850 --> 03:08.674
and keybindings, yay!
03:08.674 --> 03:10.400
Watch the Emacs Research Group talk
03:10.400 --> 03:12.185
for an example of how several people
03:12.185 --> 03:13.337
used it to work together.
03:13.337 --> 03:13.838
8.
03:13.838 --> 03:15.401
In case you're still under the impression
03:15.401 --> 03:17.049
that Emacs is just a text editor,
03:17.049 --> 03:18.560
some folks have been working on
03:18.560 --> 03:20.254
pretty neat graphical experiments.
03:20.254 --> 03:22.432
These OpenGL bindings for Emacs Lisp
03:22.432 --> 03:24.195
use an embedded xwidget,
03:24.195 --> 03:26.607
while other prototypes use the SVG support
03:26.607 --> 03:27.700
that's built into Emacs
03:27.700 --> 03:29.047
for Gantt charts,
03:29.047 --> 03:29.819
scribbles,
03:29.819 --> 03:31.320
and even diagrams.
03:31.320 --> 03:32.790
The color-picker from that one
03:32.790 --> 03:34.841
looks particularly useful for CSS.
03:34.841 --> 03:37.043
If you want to play around with adding SVGs
03:37.043 --> 03:38.722
to your files and interfaces,
03:38.722 --> 03:39.762
svg-icon
03:39.762 --> 03:40.679
and svg-lib
03:40.679 --> 03:42.733
might be good places to start. (Reddit)
03:42.733 --> 03:44.207
Of course, there's always a place
03:44.207 --> 03:45.209
for ASCII art,
03:45.209 --> 03:46.933
especially with the new boxy package
03:46.933 --> 03:48.433
that you can use for org files,
03:48.433 --> 03:49.753
imenu navigation,
03:49.753 --> 03:51.418
and even things in real life.
03:51.418 --> 03:52.208
9.
03:52.208 --> 03:54.411
There have been a lot of great posts, videos,
03:54.411 --> 03:56.312
and livestreams about Emacs this year.
03:56.312 --> 03:57.574
In addition to the ones
03:57.574 --> 03:58.973
from System Crafters,
03:58.973 --> 04:00.153
Emacs Elements,
04:00.153 --> 04:01.664
and Protesilaos,
04:01.664 --> 04:02.474
John Kitchin
04:02.474 --> 04:03.220
and Mike Zamansky
04:03.220 --> 04:04.255
are back, hooray!
04:04.255 --> 04:04.926
10.
04:04.926 --> 04:06.433
Lastly, if you want to chat
04:06.433 --> 04:07.587
with other Emacs folks
04:07.587 --> 04:09.788
and get help on Emacs, Org Mode,
04:09.788 --> 04:10.715
or other topics,
04:10.715 --> 04:11.940
the #emacs and #org-mode
04:11.940 --> 04:14.365
Internet Relay Chat or IRC channels
04:14.365 --> 04:16.251
are now on the libera.chat network
04:16.251 --> 04:17.517
instead of Freenode.
04:17.517 --> 04:19.392
If you'd like to add something I've missed,
04:19.392 --> 04:21.087
please add them to the wiki page,
04:21.087 --> 04:23.538
or e-mail me at sacha@sachachua.com .
04:23.538 --> 04:25.058
That's all for this quick review.
04:25.058 --> 04:27.608
Enjoy the rest of EmacsConf 2021!