diff options
Diffstat (limited to '')
-rw-r--r-- | 2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt | 577 |
1 files changed, 399 insertions, 178 deletions
diff --git a/2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt b/2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt index da9fcff7..964c9e52 100644 --- a/2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt +++ b/2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt @@ -1,269 +1,490 @@ WEBVTT +Kind: captions: +Language: en-GB -00:00.000 --> 00:06.159 -Hi, my name is Eduard Oxt, I'm the author of an MX package called EEV, and the name +00:00:00.000 --> 00:00:04.000 +Hi! My name is Eduardo Ochs. I'm the author -00:06.160 --> 00:11.439 -of this presentation is Bidirectional Links in EEV. +00:00:04.000 --> 00:00:06.000 +of an Emacs package called eev, and the name -00:11.440 --> 00:16.279 -Let me present things in a weird order, starting by the new feature and then I'm going to +00:00:06.000 --> 00:00:09.000 +of this presentation is: "Bidirectional links -00:16.280 --> 00:20.799 -explain the whole context. +00:00:09.000 --> 00:00:10.000 +in eev". -00:20.800 --> 00:25.839 -One of the main features that we are going to see here is this function here, MetaX Cla, +00:00:10.000 --> 00:00:13.000 +Let me present things in a weird order, -00:25.840 --> 00:29.279 -and Cla is a mnemonic for Q-link to anchor. +00:00:13.000 --> 00:00:16.000 +starting by the new feature, and then I'm -00:29.280 --> 00:33.159 -Let me explain, let me demonstrate how it works. +00:00:16.000 --> 00:00:20.000 +going to explain the whole context. -00:33.160 --> 00:40.239 -This thing here with the green angle brackets is an anchor, this thing between the green +00:00:20.000 --> 00:00:22.000 +One of the main features that we are -00:40.240 --> 00:48.279 -angle brackets is a tag of an anchor, and if I type MetaX Cla here, it highlights this +00:00:22.000 --> 00:00:24.000 +going to see here is this function here, -00:48.280 --> 00:53.719 -tag for a second and it says copied to the Q-link blah blah blah, and this thing here +00:00:24.000 --> 00:00:27.000 +M-x kla, and kla is a mnemonic for "kill -00:53.720 --> 00:55.079 -is a link. +00:00:27.000 --> 00:00:31.000 +Link to Anchor". Let me explain... let me -00:55.080 --> 01:02.759 -I can insert the link here, I can insert the link in my notes, and if I execute this link, +00:00:31.000 --> 00:00:33.000 +demonstrate how it works. This thing here -01:02.760 --> 01:08.319 -this link here, it goes to this anchor in this file. +00:00:33.000 --> 00:00:36.000 +with the green angle brackets is an -01:08.320 --> 01:16.119 -If you have a recent version of EEV installed, then trying this feature should be very easy. +00:00:36.000 --> 00:00:40.000 +anchor, this thing between the green -01:16.120 --> 01:21.679 -You just need to open this file here in which everything is defined, and then go to this +00:00:40.000 --> 00:00:42.000 +angle brackets is a tag of an -01:21.680 --> 01:27.479 -section at the beginning of the file, and then run the three blocks of tests that are +00:00:42.000 --> 00:00:46.000 +anchor, and if I type M-x kla here -01:27.480 --> 01:29.299 -there. +00:00:46.000 --> 00:00:49.000 +it highlights this tag for a second and -01:29.300 --> 01:34.439 -This block corresponds roughly to what we have just done. +00:00:49.000 --> 00:00:52.000 +it says "Copied to the kill ring: blah -01:34.440 --> 01:43.519 -This other block is slightly different because it shows some variants of Cla. +00:00:52.000 --> 00:00:54.000 +blah blah..." and this thing here is a link. -01:43.520 --> 01:47.959 -One is with F instead of an A here. +00:00:54.000 --> 00:00:57.000 +I can insert the link here, I -01:47.960 --> 01:49.559 -Let me show how it works. +00:00:57.000 --> 00:01:00.000 +can insert the link in my notes... -01:49.560 --> 02:00.519 -If we type MetaX eKlf or just MetaX klf, we get a link to this file that does not point +00:01:00.000 --> 00:01:03.000 +and if I execute this thing this link -02:00.520 --> 02:08.399 -to an anchor, and if we type MetaX klt, we get another kind of link that is linked to +00:01:03.000 --> 00:01:10.000 +here it goes to this anchor in this file. -02:08.400 --> 02:11.719 -an anchor in the same file. +00:01:10.000 --> 00:01:12.000 +If you have a recent version of eev -02:11.720 --> 02:21.199 -The third block is more interesting because it lets people create links to files that +00:01:12.000 --> 00:01:13.000 +installed then trying this feature -02:21.200 --> 02:26.439 -are elsewhere and that do not have anchors pointing to them. +00:01:13.000 --> 00:01:15.000 +should be very easy... -02:26.440 --> 02:28.799 -Let me execute this. +00:01:15.000 --> 00:01:18.000 +you just need to open the this file here, -02:28.800 --> 02:36.319 -This will run this extra here and display the target at the window at the right. +00:01:18.000 --> 00:01:21.000 +in which everything is defined, and then -02:36.320 --> 02:41.679 -This is one of the source files of MX. +00:01:21.000 --> 00:01:23.000 +go to this section at the beginning of -02:41.680 --> 02:45.519 -Let's imagine that I want to create a link to this string here. +00:01:23.000 --> 00:01:26.000 +the file, and then run the three blocks -02:45.520 --> 02:53.399 -Then I can type MetaX klfs, and this will create a link to a file in a string in that +00:01:26.000 --> 00:01:28.000 +of tests that are there. -02:53.400 --> 02:54.399 -file. +00:01:28.000 --> 00:01:31.000 +This block corresponds roughly to what -02:54.400 --> 03:00.959 -If I type enter here, it says copy to the kil ring, and this is a link to this file +00:01:31.000 --> 00:01:33.000 +we have just done... -03:00.960 --> 03:11.479 -here and to the first occurrence of this string in this file. +00:01:33.000 --> 00:01:36.000 +this other block -03:11.480 --> 03:14.399 -Notice this work inside. +00:01:36.000 --> 00:01:40.000 +is slightly different because it shows -03:14.400 --> 03:19.239 -When I was trying to write the documentation of this, I tried to write a summary of how +00:01:40.000 --> 00:01:44.000 +some variants of kla... one is with `f' -03:19.240 --> 03:25.359 -the algorithm works, and I failed, and I tried again, and I failed again several times, and +00:01:44.000 --> 00:01:48.000 +instead of an `a' here, let me -03:25.360 --> 03:33.419 -then I gave up and I decided to write an intro, a tutorial, this one, that explains everything +00:01:48.000 --> 00:01:51.000 +show how it works... if we type -03:33.420 --> 03:40.959 -but lots of details and lots of sections with try it that have examples that you can run +00:01:51.000 --> 00:01:57.000 +`M-x eeklf' or just `M-x klf' -03:40.960 --> 03:48.719 -to understand things, to examine how some functions work, how the data structures work, +00:01:57.000 --> 00:02:00.000 +we get a link to this file that does not -03:48.720 --> 03:51.599 -and so on. +00:02:00.000 --> 00:02:03.000 +point to an anchor, and if we type -03:51.600 --> 03:57.399 -The problem is that sometimes we have several hyperlinks that point to the same file. +00:02:03.000 --> 00:02:07.000 +`M-x klt' we get another kind of link that -03:57.400 --> 03:59.359 -Let me give an example. +00:02:07.000 --> 00:02:09.000 +is a link to an anchor in the same -03:59.360 --> 04:08.399 -In the configuration in which I am now, in this file here, the old way of generating +00:02:09.000 --> 00:02:11.000 +file... -04:08.400 --> 04:14.519 -hyperlinks to this file with find here links, which generate a temporary buffer like this, +00:02:11.000 --> 00:02:16.000 +and the third block -04:14.520 --> 04:20.239 -and then I would have to choose which one of these hyperlinks I find best, which one +00:02:16.000 --> 00:02:18.000 +is more interesting because it lets -04:20.240 --> 04:24.359 -I prefer, and then copy it to my notes. +00:02:18.000 --> 00:02:20.000 +people create links to files that -04:24.360 --> 04:31.079 -So instead of choosing a hyperlink, this thing here shows all the options. +00:02:20.000 --> 00:02:23.000 +are elsewhere, and that do not have -04:31.080 --> 04:38.639 -And in the new way, in MetaX and Friends, there's an algorithm that chooses the best +00:02:23.000 --> 00:02:25.000 +anchors in them... -04:38.640 --> 04:40.879 -short hyperlink by itself. +00:02:25.000 --> 00:02:29.000 +let me execute this... this will -04:40.880 --> 04:44.159 -And this algorithm is a bit hard to explain. +00:02:29.000 --> 00:02:32.000 +run this sexp here and display the -04:44.160 --> 04:46.639 -Let me demonstrate it here. +00:02:32.000 --> 00:02:35.000 +target at the window at the right... -04:46.640 --> 04:56.359 -Again, we have all these options here of hyperlinks to this file, and if I type MetaX klf, it +00:02:35.000 --> 00:02:41.000 +this is one of the source files of Emacs. -04:56.360 --> 04:58.839 -chooses one of them. +00:02:41.000 --> 00:02:43.000 +Let's imagine that I want to create a -04:58.840 --> 05:02.599 -And of course, I can copy it to my notes, it's going to work, it's going to point to +00:02:43.000 --> 00:02:46.000 +link to this string here... then I can -05:02.600 --> 05:04.799 -here and so on. +00:02:46.000 --> 00:02:51.000 +type `M-x klfs', and this will create a -05:04.800 --> 05:11.199 -Well, the title of this presentation was Bidirectional Links with EEV. +00:02:51.000 --> 00:02:53.000 +link to a file and to a string in that -05:11.200 --> 05:17.559 -Let me show what I mean by bidirectional hyperlinks and how we can use this thing to create bidirectional +00:02:53.000 --> 00:02:56.000 +file. So if I type ENTER here -05:17.560 --> 05:20.519 -hyperlinks very quickly. +00:02:56.000 --> 00:02:59.000 +it says: "Copied to the kill ring: ...\ -05:20.520 --> 05:22.259 -I will have to use a smaller font. +00:02:59.000 --> 00:03:02.000 +and this is a link to this file here, -05:22.260 --> 05:24.999 -Let me open these two files here. +00:03:02.000 --> 00:03:04.000 +and to the first occurrence of this -05:25.000 --> 05:31.999 -This one at the left is a program in Haskell, and this one is a file with my notes on Haskell. +00:03:04.000 --> 00:03:10.000 +string in this file. -05:32.000 --> 05:41.559 -How do I create a link to this file in Haskell to put it in this file here? +00:03:10.000 --> 00:03:14.000 +So: how does this work (inside)?... -05:41.560 --> 05:49.719 -I can put the cursor here in any position after this anchor here and type MetaX klf. +00:03:14.000 --> 00:03:16.000 +when I was trying to write the documentation -05:49.720 --> 05:56.359 -It copies this link here to the kill ring, and then I can go here and either insert it +00:03:16.000 --> 00:03:19.000 +of this I tried to write a summary of -05:56.360 --> 06:08.039 -with Ctrl Y, yank, or insert it with MetaX klf that adds a comment prefix here. +00:03:19.000 --> 00:03:21.000 +how the algorithm works, and I failed and -06:08.040 --> 06:16.559 -So this is a way to create a link from here to there in which every comment has to be +00:03:21.000 --> 00:03:23.000 +I tried again, and I failed again, -06:16.560 --> 06:19.359 -given explicitly. +00:03:23.000 --> 00:03:26.000 +several times... and then I gave up and I -06:19.360 --> 06:23.719 -But I also implemented a way to create the two links at the same time. +00:03:26.000 --> 00:03:29.000 +decided to write an intro - a tutorial, -06:23.720 --> 06:24.719 -I don't use it much. +00:03:29.000 --> 00:03:31.000 +this one - -06:24.720 --> 06:27.399 -It is mostly for demos because it is impressive. +00:03:31.000 --> 00:03:34.000 +that explains everything with lots of -06:27.400 --> 06:29.919 -I wanted to show that in this presentation. +00:03:34.000 --> 00:03:35.000 +details, and with lots of sections -06:29.920 --> 06:33.079 -Anyway, let me show it here. +00:03:35.000 --> 00:03:39.000 +with "Try it!"s, that -06:33.080 --> 06:41.339 -Note that in this file here the point is here, in this file the point is here. +00:03:39.000 --> 00:03:41.000 +have examples that you you can run to -06:41.340 --> 06:47.599 -My trick is going to create a link to this anchor and put it in this file, and it is +00:03:41.000 --> 00:03:44.000 +understand things, to examine how some -06:47.600 --> 06:51.479 -going to create a link to this anchor and put it in this file. +00:03:44.000 --> 00:03:48.000 +functions work, how the data -06:51.480 --> 06:58.599 -So here it goes, MetaX klhu, ta-da! +00:03:48.000 --> 00:03:51.000 +structures work, and so on... -06:58.600 --> 07:03.159 -It highlighted the two anchors for a second and then it created these things here and +00:03:51.000 --> 00:03:54.000 +the problem is that sometimes we have -07:03.160 --> 07:11.479 -inserted them with the right comment prefixes. +00:03:54.000 --> 00:03:56.000 +several hyperlinks that point to the to -07:11.480 --> 07:15.519 -And that's it. +00:03:56.000 --> 00:04:00.000 +the same file. Let me give an example. -07:15.520 --> 07:17.319 -So that's it. +00:04:00.000 --> 00:04:04.000 +In the configuration in which I am now, -07:17.320 --> 07:26.039 -If you found these things interesting, just install a recent version of VEV and run the +00:04:04.000 --> 00:04:07.000 +in this file here... the old way of -07:26.040 --> 07:32.159 -tutorial either with this thing here, MetaX client client intro, or by running this exp, +00:04:07.000 --> 00:04:08.000 +generating hyperlinks to this file -07:32.160 --> 07:39.599 -or open this file here in the iv directory and follow the tutorials. +00:04:08.000 --> 00:04:10.000 +with `find-here-links' -07:39.600 --> 07:46.919 -And most things there are well documented, but the thing that I don't use much and that +00:04:10.000 --> 00:04:13.000 +will generate a temporary buffer -07:46.920 --> 07:52.559 -is mostly for demos, which is the thing that creates bidirectional hyperlinks, is not yet +00:04:13.000 --> 00:04:15.000 +like this, and then I would have to -07:52.560 --> 07:55.119 -well documented, but the rest is. +00:04:15.000 --> 00:04:18.000 +choose which one of these hyperlinks I + +00:04:18.000 --> 00:04:21.000 +find best, which one I prefer, and then + +00:04:21.000 --> 00:04:25.000 +copy it to my notes... so instead + +00:04:25.000 --> 00:04:27.000 +of choosing a hyperlink this thing here + +00:04:27.000 --> 00:04:30.000 +shows all the options. + +00:04:30.000 --> 00:04:34.000 +And in the new way, in `M-x kla' + +00:04:34.000 --> 00:04:37.000 +and friends, there's an algorithm that + +00:04:37.000 --> 00:04:39.000 +chooses the best short hyperlink by + +00:04:39.000 --> 00:04:43.000 +itself, and this algorithm is a bit hard + +00:04:43.000 --> 00:04:46.000 +to explain... let me demonstrate it here. + +00:04:46.000 --> 00:04:50.000 +Again, we have all these options here, of + +00:04:50.000 --> 00:04:51.000 +hyperlinks to this file... + +00:04:51.000 --> 00:04:56.000 +and if I type `M-x klf' + +00:04:56.000 --> 00:04:58.000 +it chooses one of them. + +00:04:58.000 --> 00:05:01.000 +And of course I can copy it to my notes, + +00:05:01.000 --> 00:05:02.000 +it's going to work, it's going to point + +00:05:02.000 --> 00:05:05.000 +to here... and so on. + +00:05:05.000 --> 00:05:08.000 +Well, the title of this presentation was + +00:05:08.000 --> 00:05:11.000 +"Bidirectional links with eev"... let me + +00:05:11.000 --> 00:05:13.000 +show what I mean by bi-directional + +00:05:13.000 --> 00:05:15.000 +hyperlinks, and how we can use this thing + +00:05:15.000 --> 00:05:17.000 +to create bidirectional hyperlinks + +00:05:17.000 --> 00:05:19.000 +very quickly. + +00:05:19.000 --> 00:05:22.000 +I will have to use a smaller font... let + +00:05:22.000 --> 00:05:25.000 +me open these two files here. This one at + +00:05:25.000 --> 00:05:27.000 +the left is a program in Haskell, and + +00:05:27.000 --> 00:05:30.000 +this one is a file with my notes on + +00:05:30.000 --> 00:05:31.000 +Haskell. + +00:05:31.000 --> 00:05:35.000 +How do I create a link from... + +00:05:35.000 --> 00:05:39.000 +to this file in Haskell + +00:05:39.000 --> 00:05:42.000 +to put it in this file here? I can put + +00:05:42.000 --> 00:05:45.000 +the cursor here, in any position + +00:05:45.000 --> 00:05:48.000 +after this anchor here, and type + +00:05:48.000 --> 00:05:49.000 +`M-x kla'... + +00:05:49.000 --> 00:05:51.000 +it copies this link here to the kill + +00:05:51.000 --> 00:05:54.000 +ring and then I can can go here and + +00:05:54.000 --> 00:05:59.000 +either insert it with C-y (yank), or + +00:05:59.000 --> 00:06:06.000 +insert it with `M-k kli', that adds a -07:55.120 --> 07:56.119 -So that's it. +00:06:06.000 --> 00:06:07.000 +comment prefix here. + +00:06:07.000 --> 00:06:11.000 +So this is a way to create a link from + +00:06:11.000 --> 00:06:15.000 +here to there in which every + +00:06:15.000 --> 00:06:18.000 +comment has to be given explicitly... + +00:06:18.000 --> 00:06:21.000 +but I also implemented a way to + +00:06:21.000 --> 00:06:23.000 +create the two links at the same time. + +00:06:23.000 --> 00:06:25.000 +I don't use it much, it's mostly for + +00:06:25.000 --> 00:06:27.000 +demos, because it's impressive, I wanted + +00:06:27.000 --> 00:06:29.000 +to show that in this presentation... + +00:06:29.000 --> 00:06:33.000 +Anyway, let me show it here. Note that + +00:06:33.000 --> 00:06:36.000 +that in this file here the point is + +00:06:36.000 --> 00:06:40.000 +here, in this file the point is here... + +00:06:40.000 --> 00:06:43.000 +My trick is going to create a link to + +00:06:43.000 --> 00:06:47.000 +this anchor and put it in this file, and + +00:06:47.000 --> 00:06:49.000 +it's going to create a link to this + +00:06:49.000 --> 00:06:52.000 +anchor and put it in this file... + +00:06:52.000 --> 00:06:57.000 +So, here it goes: `M-x kla2'... ta-da! + +00:06:57.000 --> 00:07:01.000 +it highlighted the true anchors for a + +00:07:01.000 --> 00:07:03.000 +second, and it created these things here + +00:07:03.000 --> 00:07:06.000 +and inserted them with the + +00:07:06.000 --> 00:07:09.000 +right prefixes, I mean, the right + +00:07:09.000 --> 00:07:10.000 +comment prefixes. + +00:07:10.000 --> 00:07:15.000 +And that's it! + +00:07:15.000 --> 00:07:18.000 +So... that's it. If you found this thing + +00:07:18.000 --> 00:07:22.000 +interesting just + +00:07:22.000 --> 00:07:25.000 +install a recent version of eev and run + +00:07:25.000 --> 00:07:28.000 +the tutorial, either with this thing here, + +00:07:28.000 --> 00:07:30.000 +`M-x find-kla-intro', or by running + +00:07:30.000 --> 00:07:35.000 +this sexp, or open this file here in the + +00:07:35.000 --> 00:07:37.000 +eev directory, and follow the + +00:07:37.000 --> 00:07:39.000 +tutorials... + +00:07:39.000 --> 00:07:42.000 +most things that there are well + +00:07:42.000 --> 00:07:46.000 +documented, but the thing that I don't + +00:07:46.000 --> 00:07:47.000 +use much and that is mostly for demos, + +00:07:47.000 --> 00:07:50.000 +which is the the thing that creates + +00:07:50.000 --> 00:07:52.000 +bi-directional hyperlinks, is not yet + +00:07:52.000 --> 00:07:55.000 +well documented, but the rest is. -07:56.120 --> 08:17.400 -Have fun. +00:07:55.000 --> 00:07:57.000 +So: that's it! Bye! Have fun! =) |