summaryrefslogblamecommitdiffstats
path: root/2024/info/hyperbole-after.md
blob: 68a9d1ba96a3fea3ed2055cd3df66b6b912c45aa (plain) (tree)
1
2
3
4
5
6
7


                                                                
                                                                                                             

 
                                                                                                                                                                                                                                                                                                   






                                                                                                                                                  
                                                                                                                                                                                                                                                                                                              

















                                                                                                                                                      
                                                                                                                                                                                                                                                                            












                                                                                                                                                     
                                                                                                                                                                                                                                                                                                                   
























                                                                                                                                                       
                                                                                                                                                                                                                                                                     






















































                                                                                                                                                        
                                                                                                                                                                                                                                                                                                            












                                                                                                                                                    
                                                                                                                                                                                                                                                                                                      
















                                                                                                                                                            
      


                 

                                                                                                                                                                          

                                            
<!-- Automatically generated by emacsconf-publish-after-page -->


<div class="transcript transcript-mainVideo"><a name="hyperbole-mainVideo-transcript"></a><h1>Transcript</h1>


<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""Hi, Emacs Conference. I'm Mats Lidell. I'm the maintainer""" start="00:00:00.000" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""of the GNU Hyperbole, together with the author, Bob""" start="00:00:08.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Weiner. The title of the talk is Fun Things with GNU""" start="00:00:13.400" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Hyperbole. With that, I intend to cover a different set of""" start="00:00:19.760" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""small things that is in the package. So this will not be a""" start="00:00:27.960" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""tutorial of Hyperbole.""" start="00:00:33.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""For that, you have to look for other sources.""" start="00:00:36.855" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""The action key and the assist key""" start="00:00:41.299" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""This is a short talk, so let's get started with""" start="00:00:41.299" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the first thing. We're going to talk about scrolling and""" start="00:00:45.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""with the subtitle using the end of line. If you're new to""" start="00:00:50.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Hyperbole, you need to know about the action key and assist""" start="00:00:56.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""key. The action key is bound to M-RET and the assist key""" start="00:00:59.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""is bound by default to M-RET with the prefix argument.""" start="00:01:06.080" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Both of these keys are used for performing actions on""" start="00:01:10.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""different contexts. In this case, we'll look what""" start="00:01:15.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""happens when you use it on the end of a line.""" start="00:01:20.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""I have here the tutorial, the Emacs tutorial, and we see""" start="00:01:27.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""here a line inserting and deleting. I move there and put the""" start="00:01:35.440" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""cursor on the end of the line. I then hit M-RET, the""" start="00:01:40.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""action key, and it's moved to the top of the window. If I want""" start="00:01:45.440" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""to move it to the last row on the window I can press C-u and""" start="00:01:53.480" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""then M-RET, so I use the assist key. If I repeatedly hit""" start="00:01:58.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""M-RET, it will scroll so the first time it moves to the""" start="00:02:05.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""top of the window, but if I at the top of the window hit""" start="00:02:10.400" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""M-RET again it scrolls.""" start="00:02:16.160" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Composing an e-mail""" start="00:02:22.840" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""Now over to the next thing.""" start="00:02:22.840" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""So next thing is to compose an email from an address""" start="00:02:27.800" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""of the style of username@domain. Let's look into""" start="00:02:34.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""that. Here I have entered the file in the Emacs""" start="00:02:42.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""distribution vc.el. At its top it has a lot of""" start="00:02:48.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""different email addresses from the contributors. This is, in""" start="00:02:54.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""principle, a normal text file. By placing the cursor over""" start="00:03:01.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""one of these addresses and hitting the action key, Hyperbole""" start="00:03:09.200" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""identifies that it's an email address and tries to open or""" start="00:03:13.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""opens the email composer with that, using that email address.""" start="00:03:17.840" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""If we'll go to the scratch buffer... Prepared another name""" start="00:03:28.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""there so just to demonstrate it works in a buffer the same""" start="00:03:33.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""way.""" start="00:03:38.120" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Inserting implicit links""" start="00:03:44.600" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""The next fun thing is insert implicit link. I'm going to give""" start="00:03:44.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""you an example with email how to share an implicit link with""" start="00:03:51.080" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""someone. An implicit link is a text pattern, just as we saw""" start="00:03:56.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""with the email address, something that Hyperbole""" start="00:04:02.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""recognizes just by how the text looks. Here we have the""" start="00:04:05.160" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""example. We have started writing an email to""" start="00:04:13.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the user@domain, and in the other window below,""" start="00:04:15.982" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the vc.el file is open. It's now opened within the search path,""" start="00:04:20.663" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the load path. That's why it's compressed. I want to tell""" start="00:04:27.424" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""my friend about the credit section. First, the cursor is""" start="00:04:34.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""placed here at your credit section. I move over to the other""" start="00:04:40.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""window and I use the Hyperbole menu system. By hitting""" start="00:04:44.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""C-h h, I go into the menu system. I press i for getting an""" start="00:04:48.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""i-button, implicit button, and I press l for creating a link.""" start="00:04:55.262" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""And there you have the link. What does the link mean? Well, it""" start="00:05:05.120" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""means that in the load for Hyperbole, Emacs lib files are""" start="00:05:12.160" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""special. If they are in the load path, they will use this short""" start="00:05:15.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""format. At the end, you have the L for the line number 24 and""" start="00:05:20.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the C for the column. If I hit the action key on this line, you""" start="00:05:26.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""can see that the cursor moves over to the credit section. we""" start="00:05:31.440" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""can remove that file just to make sure that it works and move""" start="00:05:35.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the cursor a little bit and hit M-RET again.""" start="00:05:44.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""M-RET and we moved over there. I mean, given that""" start="00:05:50.640" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the receiver has a similar setup with Emacs, et cetera, that""" start="00:05:55.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""link will work there as well.""" start="00:06:00.040" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Window grid""" start="00:06:03.411" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""Hi, Emacs Conference. It's a""" start="00:06:03.411" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""new recording day, the sun is shining, I'm wearing a new""" start="00:06:05.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""t-shirt but we're still cracking on with fun things in""" start="00:06:09.640" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Hyperbole. Our next subject is window grid. With""" start="00:06:14.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Hyperbole, it's easy to create a grid of windows. I'm going to""" start="00:06:21.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""show how you can do that and also moving on I'm going to show""" start="00:06:25.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""how you can use Dired or IBuffer to select what buffers to""" start="00:06:29.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""show in the grid. I will also show how you can save""" start="00:06:34.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""configuration for use later.""" start="00:06:39.960" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""You reach the window grid functionality through the""" start="00:06:46.080" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""hyperbole menu system. C-h h screen. There you have""" start="00:06:50.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""two submenus, frame control and window control. The grid""" start="00:06:56.840" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""functionality is part of both of these submenus. You can""" start="00:07:01.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""select either, but I'll go with window control here.""" start="00:07:05.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Down to the left, we see the @ character and the grid of""" start="00:07:09.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""windows, so hit @. I'm prompted with the number of""" start="00:07:15.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""columns and rows for the window grid.""" start="00:07:21.800" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""I select the 3x3 grid.""" start="00:07:25.804" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""We get the 3x3 grid, and it's populated with buffers I have""" start="00:07:34.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""loaded in Emacs.""" start="00:07:41.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Let's go back here to the scratch buffer.""" start="00:07:46.640" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Now, using all those keystrokes for the menu system is a""" start="00:07:52.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""little bit cumbersome, so there is a shortcut: C-c @.""" start="00:07:56.400" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""If I use that, C-c @, I get immediately prompted the""" start="00:08:01.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""number of rows and columns. If i use a prefix arg 0,""" start="00:08:08.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""C-u 0 C-c @, I get also prompted with what type of""" start="00:08:16.539" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""buffers I want to have populated in my grid. Let's select""" start="00:08:23.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the emacs-lisp-mode. Again we do a 3x3 grid. Here""" start="00:08:28.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""you see all the grids. The whole grid is populated with Emacs""" start="00:08:36.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Lisp buffers.""" start="00:08:44.960" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""To get even finer control, you can go into IBuffer. I have""" start="00:08:45.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""pre-selected here all the Emacs Lisp files I have. Let's""" start="00:08:57.680" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""pick a few. I mark them like this. Let's pick three or maybe""" start="00:09:04.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""pick four. Then I hit the @ sign, and then it""" start="00:09:10.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""automatically shows a 2x2 grid""" start="00:09:16.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""with the selected buffers.""" start="00:09:22.369" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""We can go in again and maybe select a few more and do the same""" start="00:09:26.280" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""thing: hit add and it now becomes a 3x2 grid with these buffers""" start="00:09:35.240" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""The same thing is possible through Dired.""" start="00:09:44.400" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Let's just mark quite a few here and then hit @, and then it""" start="00:09:50.179" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""populates it with all the buffers. You see that if it's not""" start="00:10:00.640" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""enough buffer to fill the whole grid, there are blank grids or""" start="00:10:04.200" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""rectangles in the grid.""" start="00:10:10.680" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Now going back and forth like this, maybe if you want to work""" start="00:10:15.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""on some file and and then go over to Dired again to select this,""" start="00:10:20.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""can be a little bit cumbersome. You maybe have prepared a""" start="00:10:26.760" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""grid with the buffers you want to have there.""" start="00:10:31.760" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Hyperbole comes with a simple window configuration support.""" start="00:10:34.966" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""You reach that the same way through the Hyperbole menu, so""" start="00:10:42.560" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""C-h h and window, w for window, and there you can hit save to""" start="00:10:46.120" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""save the configuration to a ring of configurations.""" start="00:10:54.120" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Let's go back to the scratch buffer again here. Now we""" start="00:10:58.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""want to bring up our window configuration again, so we""" start="00:11:04.760" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""hit C-h h and window, and yank in the configuration. Boom,""" start="00:11:09.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""there is the grid again.""" start="00:11:15.080" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Select a thing""" start="00:11:19.720" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""We're reaching the end of the talk. The last fun thing I want to""" start="00:11:19.720" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""talk about is the Hyperbole support for select a thing.""" start="00:11:23.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""We'll show some use of selections together with web search.""" start="00:11:27.640" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Here I have brought up the GNU General Public License for""" start="00:11:33.440" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""just getting some text that I can show the select a thing""" start="00:11:43.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""functionality. Let's move the cursor over the word""" start="00:11:48.120" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""versions. Then I hit C-c RET, which is bound for the""" start="00:11:52.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""select a thing functionality.""" start="00:11:59.400" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Then it selects the word that the cursor was at. If I hit it""" start="00:12:03.120" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""again, C-c RET, it selects the line. Again, it""" start="00:12:11.040" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""selects the sentence, and again, the whole paragraph. So""" start="00:12:15.200" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""that's a convenient way to extend your searches--your""" start="00:12:22.360" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""selections, rather--in a buffer.""" start="00:12:26.160" video="mainVideo-hyperbole" id="subtitle"]]

<div class="transcript-heading">[[!template new="1" text="""Web search""" start="00:12:33.818" video="mainVideo-hyperbole" id="subtitle"]]</div>[[!template text="""Looking at selections, how you can use that from web search...""" start="00:12:33.818" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Let's mark some text and then hit C-c /, which is bound""" start="00:12:38.199" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""for the web search. Here you see the Hyperbole menu system again.""" start="00:12:44.322" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""It's slightly customized with things that I use, but the basic""" start="00:12:48.543" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""menus are the ones supported by Hyperbole. Let's look at""" start="00:12:54.960" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""searching DuckDuckGo. It then populates the prompt with""" start="00:13:00.520" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""the selection.""" start="00:13:08.000" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""I have configured it so it uses my Firefox for these""" start="00:13:08.840" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""searches. Here we have the GNU General Public License""" start="00:13:17.920" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""shown. I can also show that for like me, being not a native""" start="00:13:23.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""English speaker, let's look what &quot;take away your freedoms&quot;""" start="00:13:30.600" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""means in Swedish. So C-c /, and then I hit translate.""" start="00:13:36.320" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""Take away your freedom, yeah, what's the translation for""" start="00:13:41.680" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""that? Using Google Translate,""" start="00:13:45.880" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""I get it translated to Swedish.""" start="00:13:48.583" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""That was the whole talk. We reached the end,""" start="00:13:50.800" video="mainVideo-hyperbole" id="subtitle"]]
[[!template text="""and thanks for listening. Bye.""" start="00:14:03.431" video="mainVideo-hyperbole" id="subtitle"]]

</div>

Captioner: sachac

Questions or comments? Please e-mail [matsl@gnu.org](mailto:matsl@gnu.org?subject=Comment%20for%20EmacsConf%202023%20hyperbole%3A%20Fun%20things%20with%20GNU%20Hyperbole)


<!-- End of emacsconf-publish-after-page -->