diff options
Diffstat (limited to '')
-rw-r--r-- | 2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt | 489 |
1 files changed, 489 insertions, 0 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 new file mode 100644 index 00000000..1e7ab934 --- /dev/null +++ b/2022/captions/emacsconf-2022-eev--bidirectional-links-with-eev--eduardo-ochs--main.vtt @@ -0,0 +1,489 @@ +WEBVTT captioned by eduardo +Kind: captions: +Language: en-GB + +00:00:00.000 --> 00:00:04.000 +Hi! My name is Eduardo Ochs. I'm the author + +00:00:04.000 --> 00:00:06.000 +of an Emacs package called eev, and the name + +00:00:06.000 --> 00:00:09.000 +of this presentation is: "Bidirectional links + +00:00:09.000 --> 00:00:10.000 +in eev". + +00:00:10.000 --> 00:00:13.000 +Let me present things in a weird order, + +00:00:13.000 --> 00:00:16.000 +starting by the new feature, and then I'm + +00:00:16.000 --> 00:00:20.000 +going to explain the whole context. + +00:00:20.000 --> 00:00:22.000 +One of the main features that we are + +00:00:22.000 --> 00:00:24.000 +going to see here is this function here, + +00:00:24.000 --> 00:00:27.000 +M-x kla, and kla is a mnemonic for "kill + +00:00:27.000 --> 00:00:31.000 +Link to Anchor". Let me explain... let me + +00:00:31.000 --> 00:00:33.000 +demonstrate how it works. This thing here + +00:00:33.000 --> 00:00:36.000 +with the green angle brackets is an + +00:00:36.000 --> 00:00:40.000 +anchor, this thing between the green + +00:00:40.000 --> 00:00:42.000 +angle brackets is a tag of an + +00:00:42.000 --> 00:00:46.000 +anchor, and if I type M-x kla here + +00:00:46.000 --> 00:00:49.000 +it highlights this tag for a second and + +00:00:49.000 --> 00:00:52.000 +it says "Copied to the kill ring: blah + +00:00:52.000 --> 00:00:54.000 +blah blah..." and this thing here is a link. + +00:00:54.000 --> 00:00:57.000 +I can insert the link here, I + +00:00:57.000 --> 00:01:00.000 +can insert the link in my notes... + +00:01:00.000 --> 00:01:03.000 +and if I execute this thing this link + +00:01:03.000 --> 00:01:10.000 +here it goes to this anchor in this file. + +00:01:10.000 --> 00:01:12.000 +If you have a recent version of eev + +00:01:12.000 --> 00:01:13.000 +installed then trying this feature + +00:01:13.000 --> 00:01:15.000 +should be very easy... + +00:01:15.000 --> 00:01:18.000 +you just need to open the this file here, + +00:01:18.000 --> 00:01:21.000 +in which everything is defined, and then + +00:01:21.000 --> 00:01:23.000 +go to this section at the beginning of + +00:01:23.000 --> 00:01:26.000 +the file, and then run the three blocks + +00:01:26.000 --> 00:01:28.000 +of tests that are there. + +00:01:28.000 --> 00:01:31.000 +This block corresponds roughly to what + +00:01:31.000 --> 00:01:33.000 +we have just done... + +00:01:33.000 --> 00:01:36.000 +this other block + +00:01:36.000 --> 00:01:40.000 +is slightly different because it shows + +00:01:40.000 --> 00:01:44.000 +some variants of kla... one is with `f` + +00:01:44.000 --> 00:01:48.000 +instead of an `a` here, let me + +00:01:48.000 --> 00:01:51.000 +show how it works... if we type + +00:01:51.000 --> 00:01:57.000 +`M-x eeklf` or just `M-x klf` + +00:01:57.000 --> 00:02:00.000 +we get a link to this file that does not + +00:02:00.000 --> 00:02:03.000 +point to an anchor, and if we type + +00:02:03.000 --> 00:02:07.000 +`M-x klt` we get another kind of link that + +00:02:07.000 --> 00:02:09.000 +is a link to an anchor in the same + +00:02:09.000 --> 00:02:11.000 +file... + +00:02:11.000 --> 00:02:16.000 +and the third block + +00:02:16.000 --> 00:02:18.000 +is more interesting because it lets + +00:02:18.000 --> 00:02:20.000 +people create links to files that + +00:02:20.000 --> 00:02:23.000 +are elsewhere, and that do not have + +00:02:23.000 --> 00:02:25.000 +anchors in them... + +00:02:25.000 --> 00:02:29.000 +let me execute this... this will + +00:02:29.000 --> 00:02:32.000 +run this sexp here and display the + +00:02:32.000 --> 00:02:35.000 +target at the window at the right... + +00:02:35.000 --> 00:02:41.000 +this is one of the source files of Emacs. + +00:02:41.000 --> 00:02:43.000 +Let's imagine that I want to create a + +00:02:43.000 --> 00:02:46.000 +link to this string here... then I can + +00:02:46.000 --> 00:02:51.000 +type `M-x klfs`, and this will create a + +00:02:51.000 --> 00:02:53.000 +link to a file and to a string in that + +00:02:53.000 --> 00:02:56.000 +file. So if I type ENTER here + +00:02:56.000 --> 00:02:59.000 +it says: "Copied to the kill ring: ...\ + +00:02:59.000 --> 00:03:02.000 +and this is a link to this file here, + +00:03:02.000 --> 00:03:04.000 +and to the first occurrence of this + +00:03:04.000 --> 00:03:10.000 +string in this file. + +00:03:10.000 --> 00:03:14.000 +So: how does this work (inside)?... + +00:03:14.000 --> 00:03:16.000 +when I was trying to write the documentation + +00:03:16.000 --> 00:03:19.000 +of this I tried to write a summary of + +00:03:19.000 --> 00:03:21.000 +how the algorithm works, and I failed and + +00:03:21.000 --> 00:03:23.000 +I tried again, and I failed again, + +00:03:23.000 --> 00:03:26.000 +several times... and then I gave up and I + +00:03:26.000 --> 00:03:29.000 +decided to write an intro - a tutorial, + +00:03:29.000 --> 00:03:31.000 +this one - + +00:03:31.000 --> 00:03:34.000 +that explains everything with lots of + +00:03:34.000 --> 00:03:35.000 +details, and with lots of sections + +00:03:35.000 --> 00:03:39.000 +with "Try it!"s, that + +00:03:39.000 --> 00:03:41.000 +have examples that you you can run to + +00:03:41.000 --> 00:03:44.000 +understand things, to examine how some + +00:03:44.000 --> 00:03:48.000 +functions work, how the data + +00:03:48.000 --> 00:03:51.000 +structures work, and so on... + +00:03:51.000 --> 00:03:54.000 +the problem is that sometimes we have + +00:03:54.000 --> 00:03:56.000 +several hyperlinks that point to the to + +00:03:56.000 --> 00:04:00.000 +the same file. Let me give an example. + +00:04:00.000 --> 00:04:04.000 +In the configuration in which I am now, + +00:04:04.000 --> 00:04:07.000 +in this file here... the old way of + +00:04:07.000 --> 00:04:08.000 +generating hyperlinks to this file + +00:04:08.000 --> 00:04:10.000 +with `find-here-links` + +00:04:10.000 --> 00:04:13.000 +will generate a temporary buffer + +00:04:13.000 --> 00:04:15.000 +like this, and then I would have to + +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 + +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. + +00:07:55.000 --> 00:07:57.000 +So: that's it! Bye! Have fun! =) |