Hi, Emacs Conference. I'm Mats Lidell. I'm the maintainer
of the GNU Hyperbole, together with the author, Bob
Weiner. The title of the talk is Fun Things with GNU
Hyperbole. With that, I intend to cover a different set of
small things that is in the package. So this will not be a
tutorial of Hyperbole.
For that, you have to look for other sources.
This is a short talk, so let's get started with
the first thing. We're going to talk about scrolling and
with the subtitle using the end of line. If you're new to
Hyperbole, you need to know about the action key and assist
key. The action key is bound to M-RET and the assist key
is bound by default to M-RET with the prefix argument.
Both of these keys are used for performing actions on
different contexts. In this case, we'll look what
happens when you use it on the end of a line.
I have here the tutorial, the Emacs tutorial, and we see
here a line inserting and deleting. I move there and put the
cursor on the end of the line. I then hit M-RET, the
action key, and it's moved to the top of the window. If I want
to move it to the last row on the window I can press C-u and
then M-RET, so I use the assist key. If I repeatedly hit
M-RET, it will scroll so the first time it moves to the
top of the window, but if I at the top of the window hit
M-RET again it scrolls.
Now over to the next thing.
So next thing is to compose an email from an address
of the style of username@domain. Let's look into
that. Here I have entered the file in the Emacs
distribution vc.el. At its top it has a lot of
different email addresses from the contributors. This is, in
principle, a normal text file. By placing the cursor over
one of these addresses and hitting the action key, Hyperbole
identifies that it's an email address and tries to open or
opens the email composer with that, using that email address.
If we'll go to the scratch buffer... Prepared another name
there so just to demonstrate it works in a buffer the same
way.
The next fun thing is insert implicit link. I'm going to give
you an example with email how to share an implicit link with
someone. An implicit link is a text pattern, just as we saw
with the email address, something that Hyperbole
recognizes just by how the text looks. Here we have the
example. We have started writing an email to
the user@domain, and in the other window below,
the vc.el file is open. It's now opened within the search path,
the load path. That's why it's compressed. I want to tell
my friend about the credit section. First, the cursor is
placed here at your credit section. I move over to the other
window and I use the Hyperbole menu system. By hitting
C-h h, I go into the menu system. I press i for getting an
i-button, implicit button, and I press l for creating a link.
And there you have the link. What does the link mean? Well, it
means that in the load for Hyperbole, Emacs lib files are
special. If they are in the load path, they will use this short
format. At the end, you have the L for the line number 24 and
the C for the column. If I hit the action key on this line, you
can see that the cursor moves over to the credit section. we
can remove that file just to make sure that it works and move
the cursor a little bit and hit M-RET again.
M-RET and we moved over there. I mean, given that
the receiver has a similar setup with Emacs, et cetera, that
link will work there as well.
Hi, Emacs Conference. It's a
new recording day, the sun is shining, I'm wearing a new
t-shirt but we're still cracking on with fun things in
Hyperbole. Our next subject is window grid. With
Hyperbole, it's easy to create a grid of windows. I'm going to
show how you can do that and also moving on I'm going to show
how you can use Dired or IBuffer to select what buffers to
show in the grid. I will also show how you can save
configuration for use later.
You reach the window grid functionality through the
hyperbole menu system. C-h h screen. There you have
two submenus, frame control and window control. The grid
functionality is part of both of these submenus. You can
select either, but I'll go with window control here.
Down to the left, we see the @ character and the grid of
windows, so hit @. I'm prompted with the number of
columns and rows for the window grid.
I select the 3x3 grid.
We get the 3x3 grid, and it's populated with buffers I have
loaded in Emacs.
Let's go back here to the scratch buffer.
Now, using all those keystrokes for the menu system is a
little bit cumbersome, so there is a shortcut: C-c @.
If I use that, C-c @, I get immediately prompted the
number of rows and columns. If i use a prefix arg 0,
C-u 0 C-c @, I get also prompted with what type of
buffers I want to have populated in my grid. Let's select
the emacs-lisp-mode. Again we do a 3x3 grid. Here
you see all the grids. The whole grid is populated with Emacs
Lisp buffers.
To get even finer control, you can go into IBuffer. I have
pre-selected here all the Emacs Lisp files I have. Let's
pick a few. I mark them like this. Let's pick three or maybe
pick four. Then I hit the @ sign, and then it
automatically shows a 2x2 grid
with the selected buffers.
We can go in again and maybe select a few more and do the same
thing: hit add and it now becomes a 3x2 grid with these buffers
The same thing is possible through Dired.
Let's just mark quite a few here and then hit @, and then it
populates it with all the buffers. You see that if it's not
enough buffer to fill the whole grid, there are blank grids or
rectangles in the grid.
Now going back and forth like this, maybe if you want to work
on some file and and then go over to Dired again to select this,
can be a little bit cumbersome. You maybe have prepared a
grid with the buffers you want to have there.
Hyperbole comes with a simple window configuration support.
You reach that the same way through the Hyperbole menu, so
C-h h and window, w for window, and there you can hit save to
save the configuration to a ring of configurations.
Let's go back to the scratch buffer again here. Now we
want to bring up our window configuration again, so we
hit C-h h and window, and yank in the configuration. Boom,
there is the grid again.
We're reaching the end of the talk. The last fun thing I want to
talk about is the Hyperbole support for select a thing.
We'll show some use of selections together with web search.
Here I have brought up the GNU General Public License for
just getting some text that I can show the select a thing
functionality. Let's move the cursor over the word
versions. Then I hit C-c RET, which is bound for the
select a thing functionality.
Then it selects the word that the cursor was at. If I hit it
again, C-c RET, it selects the line. Again, it
selects the sentence, and again, the whole paragraph. So
that's a convenient way to extend your searches--your
selections, rather--in a buffer.
Looking at selections, how you can use that from web search...
Let's mark some text and then hit C-c /, which is bound
for the web search. Here you see the Hyperbole menu system again.
It's slightly customized with things that I use, but the basic
menus are the ones supported by Hyperbole. Let's look at
searching DuckDuckGo. It then populates the prompt with
the selection.
I have configured it so it uses my Firefox for these
searches. Here we have the GNU General Public License
shown. I can also show that for like me, being not a native
English speaker, let's look what "take away your freedoms"
means in Swedish. So C-c /, and then I hit translate.
Take away your freedom, yeah, what's the translation for
that? Using Google Translate,
I get it translated to Swedish.
That was the whole talk. We reached the end,
and thanks for listening. Bye.