1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
|
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:19.703
John Wiegley will share more Emacs 28 details
00:19.703 --> 00:21.483
in his update, so check out his talk.
00:21.483 --> 00:23.353
Andrea Corallo's giving a talk
00:23.353 --> 00:24.988
on native compilation too.
00:24.988 --> 00:25.776
2.
00:25.776 --> 00:28.302
Org Mode is now at version 9.5.
00:28.302 --> 00:29.656
New features include
00:29.656 --> 00:31.505
a library for managing citations,
00:31.505 --> 00:32.984
asynchronous session support
00:32.984 --> 00:33.945
for code blocks,
00:33.945 --> 00:34.912
and better control
00:34.912 --> 00:36.165
of your agenda's appearance.
00:36.165 --> 00:37.942
If you've been getting your Org packages
00:37.942 --> 00:39.076
from Org ELPA,
00:39.076 --> 00:40.698
you can update your configuration
00:40.698 --> 00:42.466
to get Org from GNU ELPA
00:42.466 --> 00:44.725
and org-contrib from NonGNU ELPA.
00:44.725 --> 00:46.848
The new release of the Org Roam package
00:46.848 --> 00:48.755
should be a faster and more consistent way
00:48.755 --> 00:50.630
to use Org to manage a knowledgebase,
00:50.630 --> 00:52.993
and org-roam-ui looks pretty snazzy.
00:52.993 --> 00:55.101
The best way to keep up with Org changes
00:55.101 --> 00:57.126
is to check out the blog This Month in Org.
00:57.126 --> 00:58.009
3.
00:58.009 --> 01:00.039
New Magit major release!
01:00.039 --> 01:02.351
Jonas Bernoulli has split some functionality
01:02.351 --> 01:04.127
into other packages so that
01:04.127 --> 01:06.289
Emacs Lisp developers can use them, such as
01:06.289 --> 01:08.619
magit-section, transient, and forge.
01:08.619 --> 01:11.072
Here's an example of using magit-section
01:11.072 --> 01:12.343
to manage groups of buffers.
01:12.343 --> 01:13.903
You can learn more about Transient
01:13.903 --> 01:15.412
in the talk on self-describing
01:15.412 --> 01:18.108
smart domain-specific languages or DSLs.
01:18.108 --> 01:18.890
4.
01:18.890 --> 01:21.115
In terms of smaller packages, there's been
01:21.115 --> 01:23.195
a lot of activity around completion.
01:23.195 --> 01:24.862
Karthik has a great diagram,
01:24.862 --> 01:27.029
and Prot explains how things work together.
01:27.029 --> 01:28.984
I think the idea is that instead of having
01:28.984 --> 01:30.636
one large completion system
01:30.636 --> 01:32.914
like Helm or Icicles, you can choose
01:32.914 --> 01:34.680
a few different, smaller packages
01:34.680 --> 01:36.439
and configure them to work together.
01:36.439 --> 01:37.699
If you're curious about this,
01:37.699 --> 01:39.729
you might start with either selectrum
01:39.729 --> 01:42.441
or vertico, which are both completion interfaces,
01:42.441 --> 01:45.013
add marginalia for more information,
01:45.013 --> 01:46.792
and try consult for many useful
01:46.792 --> 01:47.803
completing commands.
01:47.803 --> 01:48.849
There are so many options,
01:48.849 --> 01:50.437
so it might be useful to check out
01:50.437 --> 01:51.284
some discussions.
01:51.284 --> 01:52.047
5.
01:52.047 --> 01:54.101
Embark is usually mentioned as part of
01:54.101 --> 01:55.177
that group of packages,
01:55.177 --> 01:56.766
but it's well worth looking into
01:56.766 --> 01:58.465
even if you use a different system.
01:58.465 --> 02:00.987
Embark lets you have context-sensitive shortcuts
02:00.987 --> 02:03.366
that work on things in buffers, minibuffers,
02:03.366 --> 02:05.338
and even collections of things.
02:05.338 --> 02:06.307
You can also use it
02:06.307 --> 02:07.482
when you start doing one command
02:07.482 --> 02:09.582
and then decide to do a different one instead.
02:09.582 --> 02:10.841
For more ideas, check out
02:10.841 --> 00:02:12.064
Fifteen Ways to Use Embark.
02:12.065 --> 02:12.855
6.
02:12.855 --> 02:14.733
Now that there are Emacs Lisp bindings
02:14.733 --> 02:16.709
for tree-sitter, we can work more easily
02:16.709 --> 02:18.369
with the structure of code instead of
02:18.369 --> 02:20.031
just using regular expressions.
02:20.031 --> 02:20.779
Check out the talk
02:20.779 --> 02:22.374
on Tree-edit and structural editing
02:22.374 --> 02:23.163
to learn more.
02:23.163 --> 02:24.626
You can use tree-sitter for
02:24.626 --> 02:26.521
intelligent snippets that get information
02:26.521 --> 02:27.739
from the code around them,
02:27.739 --> 02:29.634
editing Lisp expressions,
02:29.634 --> 02:31.971
and navigating text objects in Evil mode.
02:31.971 --> 02:34.240
(That's when Emacs is pretending to be Vi.)
02:34.240 --> 02:37.133
Dynamic modules help us add more to Emacs
02:37.133 --> 02:38.958
than Emacs Lisp easily offers,
02:38.958 --> 02:41.374
such as structural editing in OCaml
02:41.374 --> 02:43.299
and using Rust to figure out parentheses
02:43.299 --> 00:02:44.655
and indentation for Lisp.
02:44.656 --> 02:45.559
7.
02:45.559 --> 02:47.614
Collaborative editing is now much easier
02:47.614 --> 02:50.210
since the CRDT package is in GNU ELPA.
02:50.210 --> 02:51.952
It allows multiple people to edit
02:51.952 --> 02:53.605
the same file over the network,
02:53.605 --> 02:55.345
using their own Emacs.
02:55.345 --> 02:57.170
This means you can keep your own config
02:57.170 --> 02:58.994
and keybindings, yay!
02:58.994 --> 03:00.720
Watch the Emacs Research Group talk
03:00.720 --> 03:02.505
for an example of how several people
03:02.505 --> 00:03:03.656
used it to work together.
03:03.657 --> 03:04.158
8.
03:04.158 --> 03:05.721
In case you're still under the impression
03:05.721 --> 03:07.369
that Emacs is just a text editor,
03:07.369 --> 03:08.880
some folks have been working on
03:08.880 --> 03:10.574
pretty neat graphical experiments.
03:10.574 --> 03:12.752
These OpenGL bindings for Emacs Lisp
03:12.752 --> 03:14.515
use an embedded xwidget,
03:14.515 --> 03:16.927
while other prototypes use the SVG support
03:16.927 --> 03:18.020
that's built into Emacs
03:18.020 --> 03:19.367
for Gantt charts,
03:19.367 --> 03:20.139
scribbles,
03:20.139 --> 03:21.640
and even diagrams.
03:21.640 --> 03:23.110
The color-picker from that one
03:23.110 --> 03:25.161
looks particularly useful for CSS.
03:25.161 --> 03:27.363
If you want to play around with adding SVGs
03:27.363 --> 03:29.042
to your files and interfaces,
03:29.042 --> 03:30.082
svg-icon
03:30.082 --> 03:30.999
and svg-lib
03:30.999 --> 03:33.053
might be good places to start. (Reddit)
03:33.053 --> 03:34.527
Of course, there's always a place
03:34.527 --> 03:35.529
for ASCII art,
03:35.529 --> 03:37.253
especially with the new boxy package
03:37.253 --> 03:38.753
that you can use for org files,
03:38.753 --> 03:40.073
imenu navigation,
03:40.073 --> 00:03:41.737
and even things in real life.
03:41.738 --> 03:42.528
9.
03:42.528 --> 03:44.731
There have been a lot of great posts, videos,
03:44.731 --> 03:46.632
and livestreams about Emacs this year.
03:46.632 --> 03:47.894
In addition to the ones
03:47.894 --> 03:49.293
from System Crafters,
03:49.293 --> 03:50.473
Emacs Elements,
03:50.473 --> 03:51.984
and Protesilaos,
03:51.984 --> 03:52.794
John Kitchin
03:52.794 --> 03:53.540
and Mike Zamansky
03:53.540 --> 03:54.575
are back, hooray!
03:54.575 --> 03:56.946
And Marcin Borkowski has just finished
03:56.946 --> 03:58.836
writing an intermediate textbook
03:58.836 --> 00:04:00.070
Emacs Lisp, too!
04:00.071 --> 04:00.742
10.
04:00.742 --> 04:02.249
Lastly, if you want to chat
04:02.249 --> 04:03.403
with other Emacs folks
04:03.403 --> 04:05.604
and get help on Emacs, Org Mode,
04:05.604 --> 04:06.531
or other topics,
04:06.531 --> 04:07.756
the #emacs and #org-mode
04:07.756 --> 04:10.181
Internet Relay Chat or IRC channels
04:10.181 --> 04:12.067
are now on the libera.chat network
04:12.067 --> 04:13.333
instead of Freenode.
04:13.333 --> 04:15.208
If you'd like to add something I've missed,
04:15.208 --> 04:16.903
please add them to the wiki page,
04:16.903 --> 04:19.354
or e-mail me at sacha@sachachua.com .
04:19.354 --> 04:20.874
That's all for this quick review.
04:20.874 --> 04:23.424
Enjoy the rest of EmacsConf 2021!
|