summaryrefslogblamecommitdiffstats
path: root/2022/info/eev-after.md
blob: 7368a30691b87b2b450f7750ff604ef527938958 (plain) (tree)
1
2
3
                                                                
 




































                                                                                                                                    
                                                                                                                         
                                                                                                                 
                                                                                                               
                                                                                                                          
                                                                                                                            











                                                                                                                           
                                                                                                                         

























                                                                                                                              
                                                                                                        





                                                                                                                         
                                                                                                                  




                                                                                                                           
                                                                                                         


















                                                                                                                                    
                                                                                              

                                                                                                                      
                                                                                                                       














                                                                                                                          
                                                                                                                        








                                                                                                                            
                                                                                                                     









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


<a name="eev-mainVideo-transcript"></a>
# Transcript

[[!template text="""Hi! My name is Eduardo Ochs. I'm the author""" start="00:00:00.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""of an Emacs package called eev, and the name""" start="00:00:04.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""of this presentation is: &quot;Bidirectional links""" start="00:00:06.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""in eev&quot;.""" start="00:00:09.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Let me present things in a weird order,""" start="00:00:10.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""starting by the new feature, and then I'm""" start="00:00:13.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""going to explain the whole context.""" start="00:00:16.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""One of the main features that we are""" start="00:00:20.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""going to see here is this function here,""" start="00:00:22.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""M-x kla, and kla is a mnemonic for &quot;kill""" start="00:00:24.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Link to Anchor&quot;. Let me explain... let me""" start="00:00:27.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""demonstrate how it works. This thing here""" start="00:00:31.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""with the green angle brackets is an""" start="00:00:33.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""anchor, this thing between the green""" start="00:00:36.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""angle brackets is a tag of an""" start="00:00:40.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""anchor, and if I type M-x kla here""" start="00:00:42.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it highlights this tag for a second and""" start="00:00:46.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it says &quot;Copied to the kill ring: blah""" start="00:00:49.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""blah blah...&quot; and this thing here is a link.""" start="00:00:52.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""I can insert the link here, I""" start="00:00:54.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""can insert the link in my notes...""" start="00:00:57.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and if I execute this thing this link""" start="00:01:00.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""here it goes to this anchor in this file.""" start="00:01:03.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""If you have a recent version of eev""" start="00:01:10.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""installed then trying this feature""" start="00:01:12.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""should be very easy...""" start="00:01:13.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""you just need to open the this file here,""" start="00:01:15.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""in which everything is defined, and then""" start="00:01:18.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""go to this section at the beginning of""" start="00:01:21.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the file, and then run the three blocks""" start="00:01:23.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""of tests that are there.""" start="00:01:26.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""This block corresponds roughly to what""" start="00:01:28.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""we have just done...""" start="00:01:31.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this other block""" start="00:01:33.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""is slightly different because it shows""" start="00:01:36.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""some variants of kla... one is with `f`""" start="00:01:40.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""instead of an `a` here, let me""" start="00:01:44.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""show how it works... if we type""" start="00:01:48.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""`M-x eeklf` or just `M-x klf`""" start="00:01:51.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""we get a link to this file that does not""" start="00:01:57.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""point to an anchor, and if we type""" start="00:02:00.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""`M-x klt` we get another kind of link that""" start="00:02:03.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""is a link to an anchor in the same""" start="00:02:07.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""file...""" start="00:02:09.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and the third block""" start="00:02:11.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""is more interesting because it lets""" start="00:02:16.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""people create links to files that""" start="00:02:18.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""are elsewhere, and that do not have""" start="00:02:20.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""anchors in them...""" start="00:02:23.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""let me execute this... this will""" start="00:02:25.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""run this sexp here and display the""" start="00:02:29.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""target at the window at the right...""" start="00:02:32.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this is one of the source files of Emacs.""" start="00:02:35.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Let's imagine that I want to create a""" start="00:02:41.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""link to this string here... then I can""" start="00:02:43.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""type `M-x klfs`, and this will create a""" start="00:02:46.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""link to a file and to a string in that""" start="00:02:51.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""file. So if I type ENTER here""" start="00:02:53.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it says: &quot;Copied to the kill ring: ...\""" start="00:02:56.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and this is a link to this file here,""" start="00:02:59.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and to the first occurrence of this""" start="00:03:02.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""string in this file.""" start="00:03:04.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""So: how does this work (inside)?...""" start="00:03:10.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""when I was trying to write the documentation""" start="00:03:14.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""of this I tried to write a summary of""" start="00:03:16.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""how the algorithm works, and I failed and""" start="00:03:19.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""I tried again, and I failed again,""" start="00:03:21.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""several times... and then I gave up and I""" start="00:03:23.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""decided to write an intro - a tutorial,""" start="00:03:26.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this one -""" start="00:03:29.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""that explains everything with lots of""" start="00:03:31.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""details, and with lots of sections""" start="00:03:34.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""with &quot;Try it!&quot;s, that""" start="00:03:35.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""have examples that you you can run to""" start="00:03:39.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""understand things, to examine how some""" start="00:03:41.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""functions work, how the data""" start="00:03:44.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""structures work, and so on...""" start="00:03:48.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the problem is that sometimes we have""" start="00:03:51.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""several hyperlinks that point to the to""" start="00:03:54.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the same file. Let me give an example.""" start="00:03:56.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""In the configuration in which I am now,""" start="00:04:00.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""in this file here... the old way of""" start="00:04:04.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""generating hyperlinks to this file""" start="00:04:07.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""with `find-here-links`""" start="00:04:08.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""will generate a temporary buffer""" start="00:04:10.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""like this, and then I would have to""" start="00:04:13.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""choose which one of these hyperlinks I""" start="00:04:15.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""find best, which one I prefer, and then""" start="00:04:18.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""copy it to my notes... so instead""" start="00:04:21.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""of choosing a hyperlink this thing here""" start="00:04:25.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""shows all the options.""" start="00:04:27.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""And in the new way, in `M-x kla`""" start="00:04:30.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and friends, there's an algorithm that""" start="00:04:34.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""chooses the best short hyperlink by""" start="00:04:37.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""itself, and this algorithm is a bit hard""" start="00:04:39.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to explain... let me demonstrate it here.""" start="00:04:43.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Again, we have all these options here, of""" start="00:04:46.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""hyperlinks to this file...""" start="00:04:50.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and if I type `M-x klf`""" start="00:04:51.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it chooses one of them.""" start="00:04:56.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""And of course I can copy it to my notes,""" start="00:04:58.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it's going to work, it's going to point""" start="00:05:01.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to here... and so on.""" start="00:05:02.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Well, the title of this presentation was""" start="00:05:05.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""&quot;Bidirectional links with eev&quot;... let me""" start="00:05:08.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""show what I mean by bi-directional""" start="00:05:11.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""hyperlinks, and how we can use this thing""" start="00:05:13.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to create bidirectional hyperlinks""" start="00:05:15.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""very quickly.""" start="00:05:17.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""I will have to use a smaller font... let""" start="00:05:19.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""me open these two files here. This one at""" start="00:05:22.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the left is a program in Haskell, and""" start="00:05:25.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this one is a file with my notes on""" start="00:05:27.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Haskell.""" start="00:05:30.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""How do I create a link from...""" start="00:05:31.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to this file in Haskell""" start="00:05:35.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to put it in this file here? I can put""" start="00:05:39.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the cursor here, in any position""" start="00:05:42.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""after this anchor here, and type""" start="00:05:45.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""`M-x kla`...""" start="00:05:48.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it copies this link here to the kill""" start="00:05:49.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""ring and then I can can go here and""" start="00:05:51.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""either insert it with C-y (yank), or""" start="00:05:54.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""insert it with `M-k kli`, that adds a""" start="00:05:59.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""comment prefix here.""" start="00:06:06.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""So this is a way to create a link from""" start="00:06:07.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""here to there in which every""" start="00:06:11.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""comment has to be given explicitly...""" start="00:06:15.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""but I also implemented a way to""" start="00:06:18.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""create the two links at the same time.""" start="00:06:21.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""I don't use it much, it's mostly for""" start="00:06:23.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""demos, because it's impressive, I wanted""" start="00:06:25.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""to show that in this presentation...""" start="00:06:27.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""Anyway, let me show it here. Note that""" start="00:06:29.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""that in this file here the point is""" start="00:06:33.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""here, in this file the point is here...""" start="00:06:36.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""My trick is going to create a link to""" start="00:06:40.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this anchor and put it in this file, and""" start="00:06:43.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it's going to create a link to this""" start="00:06:47.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""anchor and put it in this file...""" start="00:06:49.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""So, here it goes: `M-x kla2`... ta-da!""" start="00:06:52.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""it highlighted the true anchors for a""" start="00:06:57.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""second, and it created these things here""" start="00:07:01.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""and inserted them with the""" start="00:07:03.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""right prefixes, I mean, the right""" start="00:07:06.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""comment prefixes.""" start="00:07:09.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""And that's it!""" start="00:07:10.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""So... that's it. If you found this thing""" start="00:07:15.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""interesting just""" start="00:07:18.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""install a recent version of eev and run""" start="00:07:22.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""the tutorial, either with this thing here,""" start="00:07:25.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""`M-x find-kla-intro`, or by running""" start="00:07:28.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""this sexp, or open this file here in the""" start="00:07:30.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""eev directory, and follow the""" start="00:07:35.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""tutorials...""" start="00:07:37.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""most things that there are well""" start="00:07:39.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""documented, but the thing that I don't""" start="00:07:42.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""use much and that is mostly for demos,""" start="00:07:46.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""which is the the thing that creates""" start="00:07:47.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""bi-directional hyperlinks, is not yet""" start="00:07:50.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""well documented, but the rest is.""" start="00:07:52.000" video="mainVideo-eev" id="subtitle"]]
[[!template text="""So: that's it! Bye! Have fun! =)""" start="00:07:55.000" video="mainVideo-eev" id="subtitle"]]

Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202022%20eev%3A%20Bidirectional%20links%20with%20eev)


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