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.