summaryrefslogblamecommitdiffstats
path: root/2024/captions/emacsconf-2024-hyperbole--fun-things-with-gnu-hyperbole--mats-lidell--main.vtt
blob: 39603c7e0b0843b3ea3ae665ad4f5efa3f26d9bc (plain) (tree)
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










































































































































































































































































































































































































































































                                                                 
WEBVTT captioned by sachac

NOTE Introduction

00:00:00.000 --> 00:00:08.239
Hi, Emacs Conference. I'm Mats Lidell. I'm the maintainer

00:00:08.240 --> 00:00:13.399
of the GNU Hyperbole, together with the author, Bob

00:00:13.400 --> 00:00:19.759
Weiner. The title of the talk is Fun Things with GNU

00:00:19.760 --> 00:00:27.959
Hyperbole. With that, I intend to cover a different set of

00:00:27.960 --> 00:00:33.319
small things that is in the package. So this will not be a

00:00:33.320 --> 00:00:36.854
tutorial of Hyperbole.

00:00:36.855 --> 00:00:41.298
For that, you have to look for other sources.

NOTE The action key and the assist key

00:00:41.299 --> 00:00:45.039
This is a short talk, so let's get started with

00:00:45.040 --> 00:00:50.879
the first thing. We're going to talk about scrolling and

00:00:50.880 --> 00:00:56.239
with the subtitle using the end of line. If you're new to

00:00:56.240 --> 00:00:59.559
Hyperbole, you need to know about the action key and assist

00:00:59.560 --> 00:01:06.079
key. The action key is bound to M-RET and the assist key

00:01:06.080 --> 00:01:10.279
is bound by default to M-RET with the prefix argument.

00:01:10.280 --> 00:01:15.559
Both of these keys are used for performing actions on

00:01:15.560 --> 00:01:20.319
different contexts. In this case, we'll look what

00:01:20.320 --> 00:01:27.719
happens when you use it on the end of a line.

00:01:27.720 --> 00:01:35.439
I have here the tutorial, the Emacs tutorial, and we see

00:01:35.440 --> 00:01:40.599
here a line inserting and deleting. I move there and put the

00:01:40.600 --> 00:01:45.439
cursor on the end of the line. I then hit M-RET, the

00:01:45.440 --> 00:01:53.479
action key, and it's moved to the top of the window. If I want

00:01:53.480 --> 00:01:58.919
to move it to the last row on the window I can press C-u and

00:01:58.920 --> 00:02:05.879
then M-RET, so I use the assist key. If I repeatedly hit

00:02:05.880 --> 00:02:10.399
M-RET, it will scroll so the first time it moves to the

00:02:10.400 --> 00:02:16.159
top of the window, but if I at the top of the window hit

00:02:16.160 --> 00:02:22.839
M-RET again it scrolls.

NOTE Composing an e-mail

00:02:22.840 --> 00:02:27.799
Now over to the next thing.

00:02:27.800 --> 00:02:34.559
So next thing is to compose an email from an address

00:02:34.560 --> 00:02:42.599
of the style of username@domain. Let's look into

00:02:42.600 --> 00:02:48.359
that. Here I have entered the file in the Emacs

00:02:48.360 --> 00:02:54.239
distribution vc.el. At its top it has a lot of

00:02:54.240 --> 00:03:01.359
different email addresses from the contributors. This is, in

00:03:01.360 --> 00:03:09.199
principle, a normal text file. By placing the cursor over

00:03:09.200 --> 00:03:13.519
one of these addresses and hitting the action key, Hyperbole

00:03:13.520 --> 00:03:17.839
identifies that it's an email address and tries to open or

00:03:17.840 --> 00:03:28.519
opens the email composer with that, using that email address.

00:03:28.520 --> 00:03:33.719
If we'll go to the scratch buffer... Prepared another name

00:03:33.720 --> 00:03:38.119
there so just to demonstrate it works in a buffer the same

00:03:38.120 --> 00:03:44.599
way.

NOTE Inserting implicit links

00:03:44.600 --> 00:03:51.079
The next fun thing is insert implicit link. I'm going to give

00:03:51.080 --> 00:03:56.279
you an example with email how to share an implicit link with

00:03:56.280 --> 00:04:02.359
someone. An implicit link is a text pattern, just as we saw

00:04:02.360 --> 00:04:05.159
with the email address, something that Hyperbole

00:04:05.160 --> 00:04:13.319
recognizes just by how the text looks. Here we have the

00:04:13.320 --> 00:04:15.981
example. We have started writing an email to

00:04:15.982 --> 00:04:20.662
the user@domain, and in the other window below,

00:04:20.663 --> 00:04:27.423
the vc.el file is open. It's now opened within the search path,

00:04:27.424 --> 00:04:34.279
the load path. That's why it's compressed. I want to tell

00:04:34.280 --> 00:04:40.719
my friend about the credit section. First, the cursor is

00:04:40.720 --> 00:04:44.559
placed here at your credit section. I move over to the other

00:04:44.560 --> 00:04:48.879
window and I use the Hyperbole menu system. By hitting

00:04:48.880 --> 00:04:55.261
C-h h, I go into the menu system. I press i for getting an

00:04:55.262 --> 00:05:05.119
i-button, implicit button, and I press l for creating a link.

00:05:05.120 --> 00:05:12.159
And there you have the link. What does the link mean? Well, it

00:05:12.160 --> 00:05:15.519
means that in the load for Hyperbole, Emacs lib files are

00:05:15.520 --> 00:05:20.719
special. If they are in the load path, they will use this short

00:05:20.720 --> 00:05:26.279
format. At the end, you have the L for the line number 24 and

00:05:26.280 --> 00:05:31.439
the C for the column. If I hit the action key on this line, you

00:05:31.440 --> 00:05:35.559
can see that the cursor moves over to the credit section. we

00:05:35.560 --> 00:05:44.919
can remove that file just to make sure that it works and move

00:05:44.920 --> 00:05:50.639
the cursor a little bit and hit M-RET again.

00:05:50.640 --> 00:05:55.599
M-RET and we moved over there. I mean, given that

00:05:55.600 --> 00:06:00.039
the receiver has a similar setup with Emacs, et cetera, that

00:06:00.040 --> 00:06:03.410
link will work there as well.

NOTE Window grid

00:06:03.411 --> 00:06:05.879
Hi, Emacs Conference. It's a

00:06:05.880 --> 00:06:09.639
new recording day, the sun is shining, I'm wearing a new

00:06:09.640 --> 00:06:14.359
t-shirt but we're still cracking on with fun things in

00:06:14.360 --> 00:06:21.239
Hyperbole. Our next subject is window grid. With

00:06:21.240 --> 00:06:25.039
Hyperbole, it's easy to create a grid of windows. I'm going to

00:06:25.040 --> 00:06:29.319
show how you can do that and also moving on I'm going to show

00:06:29.320 --> 00:06:34.239
how you can use Dired or IBuffer to select what buffers to

00:06:34.240 --> 00:06:39.959
show in the grid. I will also show how you can save

00:06:39.960 --> 00:06:46.079
configuration for use later.

00:06:46.080 --> 00:06:50.039
You reach the window grid functionality through the

00:06:50.040 --> 00:06:56.839
hyperbole menu system. C-h h screen. There you have

00:06:56.840 --> 00:07:01.279
two submenus, frame control and window control. The grid

00:07:01.280 --> 00:07:05.039
functionality is part of both of these submenus. You can

00:07:05.040 --> 00:07:09.359
select either, but I'll go with window control here.

00:07:09.360 --> 00:07:15.239
Down to the left, we see the @ character and the grid of

00:07:15.240 --> 00:07:21.799
windows, so hit @. I'm prompted with the number of

00:07:21.800 --> 00:07:25.803
columns and rows for the window grid.

00:07:25.804 --> 00:07:34.359
I select the 3x3 grid.

00:07:34.360 --> 00:07:41.919
We get the 3x3 grid, and it's populated with buffers I have

00:07:41.920 --> 00:07:46.639
loaded in Emacs.

00:07:46.640 --> 00:07:52.319
Let's go back here to the scratch buffer.

00:07:52.320 --> 00:07:56.399
Now, using all those keystrokes for the menu system is a

00:07:56.400 --> 00:08:01.599
little bit cumbersome, so there is a shortcut: C-c @.

00:08:01.600 --> 00:08:08.519
If I use that, C-c @, I get immediately prompted the

00:08:08.520 --> 00:08:16.538
number of rows and columns. If i use a prefix arg 0,

00:08:16.539 --> 00:08:23.359
C-u 0 C-c @, I get also prompted with what type of

00:08:23.360 --> 00:08:28.719
buffers I want to have populated in my grid. Let's select

00:08:28.720 --> 00:08:36.599
the emacs-lisp-mode. Again we do a 3x3 grid. Here

00:08:36.600 --> 00:08:44.959
you see all the grids. The whole grid is populated with Emacs

00:08:44.960 --> 00:08:45.919
Lisp buffers.

00:08:45.920 --> 00:08:57.679
To get even finer control, you can go into IBuffer. I have

00:08:57.680 --> 00:09:04.279
pre-selected here all the Emacs Lisp files I have. Let's

00:09:04.280 --> 00:09:10.279
pick a few. I mark them like this. Let's pick three or maybe

00:09:10.280 --> 00:09:16.879
pick four. Then I hit the @ sign, and then it

00:09:16.880 --> 00:09:22.368
automatically shows a 2x2 grid

00:09:22.369 --> 00:09:26.279
with the selected buffers.

00:09:26.280 --> 00:09:35.239
We can go in again and maybe select a few more and do the same

00:09:35.240 --> 00:09:44.399
thing: hit add and it now becomes a 3x2 grid with these buffers

00:09:44.400 --> 00:09:50.178
The same thing is possible through Dired.

00:09:50.179 --> 00:10:00.639
Let's just mark quite a few here and then hit @, and then it

00:10:00.640 --> 00:10:04.199
populates it with all the buffers. You see that if it's not

00:10:04.200 --> 00:10:10.679
enough buffer to fill the whole grid, there are blank grids or

00:10:10.680 --> 00:10:15.039
rectangles in the grid.

00:10:15.040 --> 00:10:20.519
Now going back and forth like this, maybe if you want to work

00:10:20.520 --> 00:10:26.759
on some file and and then go over to Dired again to select this,

00:10:26.760 --> 00:10:31.759
can be a little bit cumbersome. You maybe have prepared a

00:10:31.760 --> 00:10:34.965
grid with the buffers you want to have there.

00:10:34.966 --> 00:10:42.559
Hyperbole comes with a simple window configuration support.

00:10:42.560 --> 00:10:46.119
You reach that the same way through the Hyperbole menu, so

00:10:46.120 --> 00:10:54.119
C-h h and window, w for window, and there you can hit save to

00:10:54.120 --> 00:10:58.599
save the configuration to a ring of configurations.

00:10:58.600 --> 00:11:04.759
Let's go back to the scratch buffer again here. Now we

00:11:04.760 --> 00:11:09.919
want to bring up our window configuration again, so we

00:11:09.920 --> 00:11:15.079
hit C-h h and window, and yank in the configuration. Boom,

00:11:15.080 --> 00:11:19.719
there is the grid again.

NOTE Select a thing

00:11:19.720 --> 00:11:23.319
We're reaching the end of the talk. The last fun thing I want to

00:11:23.320 --> 00:11:27.639
talk about is the Hyperbole support for select a thing.

00:11:27.640 --> 00:11:33.439
We'll show some use of selections together with web search.

00:11:33.440 --> 00:11:43.599
Here I have brought up the GNU General Public License for

00:11:43.600 --> 00:11:48.119
just getting some text that I can show the select a thing

00:11:48.120 --> 00:11:52.919
functionality. Let's move the cursor over the word

00:11:52.920 --> 00:11:59.399
versions. Then I hit C-c RET, which is bound for the

00:11:59.400 --> 00:12:03.119
select a thing functionality.

00:12:03.120 --> 00:12:11.039
Then it selects the word that the cursor was at. If I hit it

00:12:11.040 --> 00:12:15.199
again, C-c RET, it selects the line. Again, it

00:12:15.200 --> 00:12:22.359
selects the sentence, and again, the whole paragraph. So

00:12:22.360 --> 00:12:26.159
that's a convenient way to extend your searches--your

00:12:26.160 --> 00:12:33.817
selections, rather--in a buffer.

NOTE Web search

00:12:33.818 --> 00:12:38.198
Looking at selections, how you can use that from web search...

00:12:38.199 --> 00:12:44.321
Let's mark some text and then hit C-c /, which is bound

00:12:44.322 --> 00:12:48.542
for the web search. Here you see the Hyperbole menu system again.

00:12:48.543 --> 00:12:54.959
It's slightly customized with things that I use, but the basic

00:12:54.960 --> 00:13:00.519
menus are the ones supported by Hyperbole. Let's look at

00:13:00.520 --> 00:13:07.999
searching DuckDuckGo. It then populates the prompt with

00:13:08.000 --> 00:13:08.839
the selection.

00:13:08.840 --> 00:13:17.919
I have configured it so it uses my Firefox for these

00:13:17.920 --> 00:13:23.319
searches. Here we have the GNU General Public License

00:13:23.320 --> 00:13:30.599
shown. I can also show that for like me, being not a native

00:13:30.600 --> 00:13:36.319
English speaker, let's look what "take away your freedoms"

00:13:36.320 --> 00:13:41.679
means in Swedish. So C-c /, and then I hit translate.

00:13:41.680 --> 00:13:45.879
Take away your freedom, yeah, what's the translation for

00:13:45.880 --> 00:13:48.582
that? Using Google Translate,

00:13:48.583 --> 00:13:50.799
I get it translated to Swedish.

00:13:50.800 --> 00:14:03.430
That was the whole talk. We reached the end,

00:14:03.431 --> 00:14:09.400
and thanks for listening. Bye.