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.