summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/30.md185
-rw-r--r--2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzola-sbozzolo.vtt526
-rw-r--r--2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt634
-rw-r--r--2020/talks/30.md6
4 files changed, 710 insertions, 641 deletions
diff --git a/2020/info/30.md b/2020/info/30.md
index c699d467..5591aa6f 100644
--- a/2020/info/30.md
+++ b/2020/info/30.md
@@ -1,9 +1,10 @@
# A tour of vterm
Gabriele Bozzola (@sbozzolo)
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.webm" subtitles="/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo.vtt"]]
[Download compressed .webm video (17.7M)](https://media.emacsconf.org/2020/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo--compressed32.webm)
[Download compressed .webm video (10.9M, highly compressed)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo--vp9-q56-video-original-audio.webm)
+[View transcript](#transcript)
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo.webm" download="Download Q&A video"]]
[Download compressed Q&A .webm video (4.1M)](https://media.emacsconf.org/2020/emacsconf-2020--30-a-tour-of-vterm--questions--gabriele-bozzola-sbozzolo--compressed32.webm)
@@ -49,3 +50,185 @@ in Emacs.
# Notes
<https://github.com/akermu/emacs-libvterm>
+
+<a name="transcript"></a>
+# Transcript
+
+<a name="transcript"></a>
+# Transcript
+
+[[!template text="Hello and welcome to this talk." start="00:00:00.880" video="mainVideo" id=subtitle]]
+[[!template text="The title of this talk is a tour of vterm," start="00:00:03.760" video="mainVideo" id=subtitle]]
+[[!template text="a fast and fully featured terminal emulator" start="00:00:06.080" video="mainVideo" id=subtitle]]
+[[!template text="inside GNU Emacs." start="00:00:08.559" video="mainVideo" id=subtitle]]
+[[!template text="So let's try to understand what we mean" start="00:00:10.801" video="mainVideo" id=subtitle]]
+[[!template text="with &quot ;fast and fully featured.&quot ;" start="00:00:12.720" video="mainVideo" id=subtitle]]
+[[!template text="To do that we'll compare vterm" start="00:00:14.559" video="mainVideo" id=subtitle]]
+[[!template text="with the packages which are built in Emacs," start="00:00:16.801" video="mainVideo" id=subtitle]]
+[[!template text="mainly, term." start="00:00:20.401" video="mainVideo" id=subtitle]]
+[[!template text="So let's jump into the vterm." start="00:00:22.400" video="mainVideo" id=subtitle]]
+[[!template text="So this is a vterm buffer" start="00:00:25.040" video="mainVideo" id=subtitle]]
+[[!template text="and this is a ansi-term buffer." start="00:00:26.720" video="mainVideo" id=subtitle]]
+[[!template new="1" text="What I'm going to do now is" start="00:00:29.440" video="mainVideo" id=subtitle]]
+[[!template text="first I'm going to prove to you" start="00:00:30.721" video="mainVideo" id=subtitle]]
+[[!template text="what we mean by fast." start="00:00:32.160" video="mainVideo" id=subtitle]]
+[[!template text="To do that, let me open a large file display on screen--" start="00:00:34.161" video="mainVideo" id=subtitle]]
+[[!template text="a large file, this is about one megabyte of data--" start="00:00:37.441" video="mainVideo" id=subtitle]]
+[[!template text="and let me time that." start="00:00:40.239" video="mainVideo" id=subtitle]]
+[[!template text="It takes about 0.6 seconds with vterm." start="00:00:41.841" video="mainVideo" id=subtitle]]
+[[!template text="Let's do the same with with ansi-term." start="00:00:45.201" video="mainVideo" id=subtitle]]
+[[!template text="Well, we already see the difference." start="00:00:48.321" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So I will use this time to tell you" start="00:00:51.520" video="mainVideo" id=subtitle]]
+[[!template text="what's different, and what is vterm exactly." start="00:00:53.039" video="mainVideo" id=subtitle]]
+[[!template text="vterm is a terminal emulator" start="00:00:56.321" video="mainVideo" id=subtitle]]
+[[!template text="built on top of an external library." start="00:00:58.400" video="mainVideo" id=subtitle]]
+[[!template text="The library is called libvterm," start="00:01:00.801" video="mainVideo" id=subtitle]]
+[[!template text="and is the same library used by Newton" start="00:01:02.719" video="mainVideo" id=subtitle]]
+[[!template text="for their own terminal emulator." start="00:01:05.519" video="mainVideo" id=subtitle]]
+[[!template text="It's a C library, and this is what gives us" start="00:01:07.200" video="mainVideo" id=subtitle]]
+[[!template text="a lot of good features. First, the speed." start="00:01:10.799" video="mainVideo" id=subtitle]]
+[[!template text="Time spent here, 0.6, is essentially" start="00:01:15.119" video="mainVideo" id=subtitle]]
+[[!template text="the time that it takes to:" start="00:01:17.120" video="mainVideo" id=subtitle]]
+[[!template text="1. convert the Emacs representation of text" start="00:01:18.479" video="mainVideo" id=subtitle]]
+[[!template text="into the vterm representation of what is a string," start="00:01:22.241" video="mainVideo" id=subtitle]]
+[[!template text="and 2., into actually displaying that," start="00:01:25.041" video="mainVideo" id=subtitle]]
+[[!template text="and that can take time" start="00:01:27.361" video="mainVideo" id=subtitle]]
+[[!template text="if there's fontification involved." start="00:01:29.520" video="mainVideo" id=subtitle]]
+[[!template text="So these are the 0.6 seconds there." start="00:01:32.241" video="mainVideo" id=subtitle]]
+[[!template text="As we say, in ansi-term, that's much more time." start="00:01:34.240" video="mainVideo" id=subtitle]]
+[[!template text="It's much slower. So the terminal will feel" start="00:01:38.480" video="mainVideo" id=subtitle]]
+[[!template text="much snappier, much faster." start="00:01:40.721" video="mainVideo" id=subtitle]]
+[[!template new="1" text="But that's not the main benefit or the only benefit" start="00:01:42.880" video="mainVideo" id=subtitle]]
+[[!template text="of using this external library vterm." start="00:01:46.721" video="mainVideo" id=subtitle]]
+[[!template text="The second big benefit is that" start="00:01:49.760" video="mainVideo" id=subtitle]]
+[[!template text="vterm has support for all the escape codes" start="00:01:53.041" video="mainVideo" id=subtitle]]
+[[!template text="that xterm has support for," start="00:01:56.560" video="mainVideo" id=subtitle]]
+[[!template text="so vterm is essentially as running xterm" start="00:01:58.321" video="mainVideo" id=subtitle]]
+[[!template text="inside an Emacs buffer. So let's see that." start="00:02:01.119" video="mainVideo" id=subtitle]]
+[[!template text="For example, let's start by looking" start="00:02:03.600" video="mainVideo" id=subtitle]]
+[[!template text="at the support for colors." start="00:02:05.760" video="mainVideo" id=subtitle]]
+[[!template text="We have support for all the colors out of the box." start="00:02:08.239" video="mainVideo" id=subtitle]]
+[[!template text="We don't have to do anything." start="00:02:10.320" video="mainVideo" id=subtitle]]
+[[!template text="And if we did the same here, well," start="00:02:11.840" video="mainVideo" id=subtitle]]
+[[!template text="we have only 20 colors." start="00:02:14.721" video="mainVideo" id=subtitle]]
+[[!template text="There's a way to get all the colors," start="00:02:16.801" video="mainVideo" id=subtitle]]
+[[!template text="but it's much more involved." start="00:02:18.240" video="mainVideo" id=subtitle]]
+[[!template new="1" text="But this is not where vterm shines." start="00:02:19.680" video="mainVideo" id=subtitle]]
+[[!template text="We can run all the commands that we want." start="00:02:23.040" video="mainVideo" id=subtitle]]
+[[!template text="htop, ncdu, everything runs here." start="00:02:27.200" video="mainVideo" id=subtitle]]
+[[!template text="Also this title, it's a fairly complicated" start="00:02:31.441" video="mainVideo" id=subtitle]]
+[[!template text="manipulation of the window" start="00:02:35.520" video="mainVideo" id=subtitle]]
+[[!template text="and it will not work here." start="00:02:37.921" video="mainVideo" id=subtitle]]
+[[!template text="It just doesn't work actually." start="00:02:40.879" video="mainVideo" id=subtitle]]
+[[!template text="Now the terminal is probably messed up. Yes." start="00:02:42.001" video="mainVideo" id=subtitle]]
+[[!template text="So using this external library" start="00:02:46.161" video="mainVideo" id=subtitle]]
+[[!template text="removes the burden from the developers" start="00:02:48.400" video="mainVideo" id=subtitle]]
+[[!template text="of having to implement support" start="00:02:50.959" video="mainVideo" id=subtitle]]
+[[!template text="for all the escape codes." start="00:02:52.320" video="mainVideo" id=subtitle]]
+[[!template text="We just use those." start="00:02:53.281" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So in many ways, running vterm" start="00:02:55.360" video="mainVideo" id=subtitle]]
+[[!template text="is running xterm inside Emacs," start="00:02:58.480" video="mainVideo" id=subtitle]]
+[[!template text="but it's better than that because," start="00:03:01.760" video="mainVideo" id=subtitle]]
+[[!template text="since this is an Emacs buffer," start="00:03:04.160" video="mainVideo" id=subtitle]]
+[[!template text="we can enjoy a lot of features from Emacs" start="00:03:05.840" video="mainVideo" id=subtitle]]
+[[!template text="as well as a tighter integration" start="00:03:09.760" video="mainVideo" id=subtitle]]
+[[!template text="with Emacs itself." start="00:03:11.361" video="mainVideo" id=subtitle]]
+[[!template text="For example, as you see here," start="00:03:13.200" video="mainVideo" id=subtitle]]
+[[!template text="the title of my buffer is from the directory I'm in." start="00:03:15.841" video="mainVideo" id=subtitle]]
+[[!template text="So let's go to my tmp." start="00:03:20.240" video="mainVideo" id=subtitle]]
+[[!template text="The title will change." start="00:03:21.760" video="mainVideo" id=subtitle]]
+[[!template text="So there's information being exchanged" start="00:03:23.441" video="mainVideo" id=subtitle]]
+[[!template text="between vterm and Emacs." start="00:03:25.921" video="mainVideo" id=subtitle]]
+[[!template text="And of course, the title is not the only place" start="00:03:28.000" video="mainVideo" id=subtitle]]
+[[!template text="where information is exchanged." start="00:03:30.001" video="mainVideo" id=subtitle]]
+[[!template text="I can find a file and I will be in the directory" start="00:03:32.000" video="mainVideo" id=subtitle]]
+[[!template text="where my terminal is." start="00:03:35.920" video="mainVideo" id=subtitle]]
+[[!template text="This feature is also available in ansi-term," start="00:03:37.681" video="mainVideo" id=subtitle]]
+[[!template text="and it works also on vterm," start="00:03:40.000" video="mainVideo" id=subtitle]]
+[[!template text="and it follows me. So if I go to tmp," start="00:03:41.361" video="mainVideo" id=subtitle]]
+[[!template text="I'll get the tmp." start="00:03:43.441" video="mainVideo" id=subtitle]]
+[[!template text="If I ssh to a remote server," start="00:03:44.720" video="mainVideo" id=subtitle]]
+[[!template text="it will work also on remote servers as well," start="00:03:47.121" video="mainVideo" id=subtitle]]
+[[!template text="which is a very nice way to edit files remotely" start="00:03:50.240" video="mainVideo" id=subtitle]]
+[[!template text="while we're working on a shell." start="00:03:53.920" video="mainVideo" id=subtitle]]
+[[!template new="1" text="And second, while vterm is not an Elisp interpreter" start="00:03:55.600" video="mainVideo" id=subtitle]]
+[[!template text="like eshell, what we can do is" start="00:03:59.281" video="mainVideo" id=subtitle]]
+[[!template text="we can still run Emacs functions." start="00:04:01.201" video="mainVideo" id=subtitle]]
+[[!template text="So for example..." start="00:04:04.721" video="mainVideo" id=subtitle]]
+[[!template text="that requires some configuration." start="00:04:06.081" video="mainVideo" id=subtitle]]
+[[!template text="vterm command (message &quot;hi&quot;)" start="00:04:08.001" video="mainVideo" id=subtitle]]
+[[!template text="as you see there's a &quot;hi&quot; here." start="00:04:11.600" video="mainVideo" id=subtitle]]
+[[!template text="So what I'm doing is I'm executing" start="00:04:13.121" video="mainVideo" id=subtitle]]
+[[!template text="the Elisp function hi." start="00:04:14.960" video="mainVideo" id=subtitle]]
+[[!template text="I can drop that and turn it around," start="00:04:16.239" video="mainVideo" id=subtitle]]
+[[!template text="hash function to run Elisp functions." start="00:04:18.960" video="mainVideo" id=subtitle]]
+[[!template text="Or another one, find-file, same." start="00:04:21.601" video="mainVideo" id=subtitle]]
+[[!template text="We call this feature &quot;message passing,&quot;" start="00:04:24.880" video="mainVideo" id=subtitle]]
+[[!template text="and it requires some configuration" start="00:04:27.361" video="mainVideo" id=subtitle]]
+[[!template text="on the Emacs side as well as in the shell side." start="00:04:30.001" video="mainVideo" id=subtitle]]
+[[!template new="1" text="It's important to stress" start="00:04:32.000" video="mainVideo" id=subtitle]]
+[[!template text="what's the nature of vterm." start="00:04:33.441" video="mainVideo" id=subtitle]]
+[[!template text="For instance, every time I'm sending a key binding," start="00:04:35.360" video="mainVideo" id=subtitle]]
+[[!template text="it's not immediately clear if my intention is" start="00:04:37.920" video="mainVideo" id=subtitle]]
+[[!template text="to send it to the shell or to Emacs." start="00:04:40.001" video="mainVideo" id=subtitle]]
+[[!template text="So vterm implements some reasonable defaults," start="00:04:41.841" video="mainVideo" id=subtitle]]
+[[!template text="but at the moment it's mainly packaged" start="00:04:44.320" video="mainVideo" id=subtitle]]
+[[!template text="to display characters on a screen." start="00:04:46.800" video="mainVideo" id=subtitle]]
+[[!template text="So for example, if you're using evil," start="00:04:49.120" video="mainVideo" id=subtitle]]
+[[!template text="the editing commands in evil" start="00:04:50.721" video="mainVideo" id=subtitle]]
+[[!template text="will not work immediately." start="00:04:52.640" video="mainVideo" id=subtitle]]
+[[!template text="There's some work to be done" start="00:04:54.081" video="mainVideo" id=subtitle]]
+[[!template text="and integration can be improved on that side," start="00:04:55.759" video="mainVideo" id=subtitle]]
+[[!template new="1" text="but sometimes we really want this to behave" start="00:04:58.161" video="mainVideo" id=subtitle]]
+[[!template text="exactly like a Emacs buffer." start="00:05:00.240" video="mainVideo" id=subtitle]]
+[[!template text="We want to be able to search." start="00:05:02.240" video="mainVideo" id=subtitle]]
+[[!template text="If I try to get it to search," start="00:05:03.681" video="mainVideo" id=subtitle]]
+[[!template text="it will not work." start="00:05:06.640" video="mainVideo" id=subtitle]]
+[[!template text="I will send it to the shell." start="00:05:07.281" video="mainVideo" id=subtitle]]
+[[!template text="So to do that, we enabled vterm copy mode." start="00:05:08.401" video="mainVideo" id=subtitle]]
+[[!template text="As you see, copy mode, and now this buffer" start="00:05:11.920" video="mainVideo" id=subtitle]]
+[[!template text="is essentially a fundamental buffer." start="00:05:14.721" video="mainVideo" id=subtitle]]
+[[!template text="I can move around. I can search." start="00:05:17.039" video="mainVideo" id=subtitle]]
+[[!template text="So it must have... I can do everything I want." start="00:05:21.120" video="mainVideo" id=subtitle]]
+[[!template text="And there are additional features." start="00:05:25.521" video="mainVideo" id=subtitle]]
+[[!template text="For example, I can jump around all the prompts." start="00:05:26.480" video="mainVideo" id=subtitle]]
+[[!template text="I find this extremely useful," start="00:05:30.561" video="mainVideo" id=subtitle]]
+[[!template text="because I can copy updates from my programs." start="00:05:32.639" video="mainVideo" id=subtitle]]
+[[!template text="What I always have to do is" start="00:05:35.040" video="mainVideo" id=subtitle]]
+[[!template text="I have to Google some errors." start="00:05:38.321" video="mainVideo" id=subtitle]]
+[[!template text="So what I do is I select that" start="00:05:41.521" video="mainVideo" id=subtitle]]
+[[!template text="and I have my keybinding in Emacs conf," start="00:05:43.120" video="mainVideo" id=subtitle]]
+[[!template text="and I'm Googling what I have to Google." start="00:05:45.121" video="mainVideo" id=subtitle]]
+[[!template text="So this is very nice and if I..." start="00:05:48.480" video="mainVideo" id=subtitle]]
+[[!template text="now that I have selected something," start="00:05:51.121" video="mainVideo" id=subtitle]]
+[[!template text="if I just press return," start="00:05:52.640" video="mainVideo" id=subtitle]]
+[[!template text="I will go back to my normal editing mode" start="00:05:53.841" video="mainVideo" id=subtitle]]
+[[!template text="with the text copied, so I can paste it back." start="00:05:56.401" video="mainVideo" id=subtitle]]
+[[!template text="So it's a quick way to interact with copy" start="00:06:00.161" video="mainVideo" id=subtitle]]
+[[!template text="and interact with the output of a buffer." start="00:06:02.721" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So finally, let's discuss how to actually use vterm." start="00:06:05.841" video="mainVideo" id=subtitle]]
+[[!template text="Let's circle back, let's go," start="00:06:09.121" video="mainVideo" id=subtitle]]
+[[!template text="and let's look at the GitHub repo" start="00:06:10.560" video="mainVideo" id=subtitle]]
+[[!template text="where development is happening." start="00:06:12.400" video="mainVideo" id=subtitle]]
+[[!template text="vterm is available in MELPA," start="00:06:14.001" video="mainVideo" id=subtitle]]
+[[!template text="but since it's leveraging the power" start="00:06:15.520" video="mainVideo" id=subtitle]]
+[[!template text="of an external module," start="00:06:17.760" video="mainVideo" id=subtitle]]
+[[!template text="you must have Emacs compiled" start="00:06:18.960" video="mainVideo" id=subtitle]]
+[[!template text="with support for modules," start="00:06:20.480" video="mainVideo" id=subtitle]]
+[[!template text="and many distros like Ubuntu, Debian," start="00:06:22.000" video="mainVideo" id=subtitle]]
+[[!template text="that's not there. So you have to" start="00:06:25.600" video="mainVideo" id=subtitle]]
+[[!template text="get Emacs with support for modules:" start="00:06:26.881" video="mainVideo" id=subtitle]]
+[[!template text="compiling or getting images somewhere else." start="00:06:29.200" video="mainVideo" id=subtitle]]
+[[!template text="And also, the first time you are going to use this," start="00:06:31.361" video="mainVideo" id=subtitle]]
+[[!template text="which works only on Mac or GNU Linux systems," start="00:06:33.840" video="mainVideo" id=subtitle]]
+[[!template text="Emacs will try to find and compile this module," start="00:06:38.961" video="mainVideo" id=subtitle]]
+[[!template text="so it's important. This requirement is important." start="00:06:41.759" video="mainVideo" id=subtitle]]
+[[!template text="If you're using Windows, well," start="00:06:44.241" video="mainVideo" id=subtitle]]
+[[!template text="it's not available and will not work." start="00:06:46.401" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So to conclude, I want to just advertise this page." start="00:06:49.199" video="mainVideo" id=subtitle]]
+[[!template text="If you have problems, look at the issues" start="00:06:53.440" video="mainVideo" id=subtitle]]
+[[!template text="and open an issue in case." start="00:06:56.240" video="mainVideo" id=subtitle]]
+[[!template text="We'll try to help you." start="00:06:58.241" video="mainVideo" id=subtitle]]
+[[!template text="We are very excited about vterm," start="00:06:59.200" video="mainVideo" id=subtitle]]
+[[!template text="and I think it's a transformative" start="00:07:00.800" video="mainVideo" id=subtitle]]
+[[!template text="terminal experience inside GNU Emacs." start="00:07:02.639" video="mainVideo" id=subtitle]]
diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzola-sbozzolo.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzola-sbozzolo.vtt
new file mode 100644
index 00000000..183ea9f6
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzola-sbozzolo.vtt
@@ -0,0 +1,526 @@
+WEBVTT
+
+00:00:00.880 --> 00:00:03.760
+Hello and welcome to this talk.
+
+00:00:03.760 --> 00:00:06.080
+The title of this talk is a tour of vterm,
+
+00:00:06.080 --> 00:00:08.559
+a fast and fully featured terminal emulator
+
+00:00:08.559 --> 00:00:10.800
+inside GNU Emacs.
+
+00:00:10.801 --> 00:00:12.719
+So let's try to understand what we mean
+
+00:00:12.720 --> 00:00:14.559
+with "fast and fully featured."
+
+00:00:14.559 --> 00:00:16.800
+To do that we'll compare vterm
+
+00:00:16.801 --> 00:00:20.400
+with the packages which are built in Emacs,
+
+00:00:20.401 --> 00:00:22.400
+mainly, term.
+
+00:00:22.400 --> 00:00:25.039
+So let's jump into the vterm.
+
+00:00:25.040 --> 00:00:26.720
+So this is a vterm buffer
+
+00:00:26.720 --> 00:00:29.439
+and this is a ansi-term buffer.
+
+00:00:29.440 --> 00:00:30.720
+What I'm going to do now is
+
+00:00:30.721 --> 00:00:32.160
+first I'm going to prove to you
+
+00:00:32.160 --> 00:00:34.160
+what we mean by fast.
+
+00:00:34.161 --> 00:00:37.440
+To do that, let me open a large file display on screen--
+
+00:00:37.441 --> 00:00:40.239
+a large file, this is about one megabyte of data--
+
+00:00:40.239 --> 00:00:41.840
+and let me time that.
+
+00:00:41.841 --> 00:00:45.200
+It takes about 0.6 seconds with vterm.
+
+00:00:45.201 --> 00:00:48.320
+Let's do the same with with ansi-term.
+
+00:00:48.321 --> 00:00:51.520
+Well, we already see the difference.
+
+00:00:51.520 --> 00:00:53.039
+So I will use this time to tell you
+
+00:00:53.039 --> 00:00:56.320
+what's different, and what is vterm exactly.
+
+00:00:56.321 --> 00:00:58.399
+vterm is a terminal emulator
+
+00:00:58.400 --> 00:01:00.800
+built on top of an external library.
+
+00:01:00.801 --> 00:01:02.719
+The library is called libvterm,
+
+00:01:02.719 --> 00:01:05.519
+and is the same library used by Newton
+
+00:01:05.519 --> 00:01:07.200
+for their own terminal emulator.
+
+00:01:07.200 --> 00:01:10.799
+It's a C library, and this is what gives us
+
+00:01:10.799 --> 00:01:15.119
+a lot of good features. First, the speed.
+
+00:01:15.119 --> 00:01:17.119
+Time spent here, 0.6, is essentially
+
+00:01:17.120 --> 00:01:18.479
+the time that it takes to:
+
+00:01:18.479 --> 00:01:22.240
+1. convert the Emacs representation of text
+
+00:01:22.241 --> 00:01:25.040
+into the vterm representation of what is a string,
+
+00:01:25.041 --> 00:01:27.360
+and 2., into actually displaying that,
+
+00:01:27.361 --> 00:01:29.520
+and that can take time
+
+00:01:29.520 --> 00:01:32.240
+if there's fontification involved.
+
+00:01:32.241 --> 00:01:34.240
+So these are the 0.6 seconds there.
+
+00:01:34.240 --> 00:01:38.479
+As we say, in ansi-term, that's much more time.
+
+00:01:38.480 --> 00:01:40.720
+It's much slower. So the terminal will feel
+
+00:01:40.721 --> 00:01:42.880
+much snappier, much faster.
+
+00:01:42.880 --> 00:01:46.720
+But that's not the main benefit or the only benefit
+
+00:01:46.721 --> 00:01:49.759
+of using this external library vterm.
+
+00:01:49.760 --> 00:01:53.040
+The second big benefit is that
+
+00:01:53.041 --> 00:01:56.560
+vterm has support for all the escape codes
+
+00:01:56.560 --> 00:01:58.320
+that xterm has support for,
+
+00:01:58.321 --> 00:02:01.119
+so vterm is essentially as running xterm
+
+00:02:01.119 --> 00:02:03.600
+inside an Emacs buffer. So let's see that.
+
+00:02:03.600 --> 00:02:05.759
+For example, let's start by looking
+
+00:02:05.760 --> 00:02:08.239
+at the support for colors.
+
+00:02:08.239 --> 00:02:10.319
+We have support for all the colors out of the box.
+
+00:02:10.320 --> 00:02:11.840
+We don't have to do anything.
+
+00:02:11.840 --> 00:02:14.720
+And if we did the same here, well,
+
+00:02:14.721 --> 00:02:16.800
+we have only 20 colors.
+
+00:02:16.801 --> 00:02:18.239
+There's a way to get all the colors,
+
+00:02:18.240 --> 00:02:19.680
+but it's much more involved.
+
+00:02:19.680 --> 00:02:23.040
+But this is not where vterm shines.
+
+00:02:23.040 --> 00:02:27.200
+We can run all the commands that we want.
+
+00:02:27.200 --> 00:02:31.440
+htop, ncdu, everything runs here.
+
+00:02:31.441 --> 00:02:35.519
+Also this title, it's a fairly complicated
+
+00:02:35.520 --> 00:02:37.920
+manipulation of the window
+
+00:02:37.921 --> 00:02:40.879
+and it will not work here.
+
+00:02:40.879 --> 00:02:42.000
+It just doesn't work actually.
+
+00:02:42.001 --> 00:02:46.160
+Now the terminal is probably messed up. Yes.
+
+00:02:46.161 --> 00:02:48.400
+So using this external library
+
+00:02:48.400 --> 00:02:50.959
+removes the burden from the developers
+
+00:02:50.959 --> 00:02:52.319
+of having to implement support
+
+00:02:52.320 --> 00:02:53.280
+for all the escape codes.
+
+00:02:53.281 --> 00:02:55.360
+We just use those.
+
+00:02:55.360 --> 00:02:58.480
+So in many ways, running vterm
+
+00:02:58.480 --> 00:03:01.760
+is running xterm inside Emacs,
+
+00:03:01.760 --> 00:03:04.159
+but it's better than that because,
+
+00:03:04.160 --> 00:03:05.840
+since this is an Emacs buffer,
+
+00:03:05.840 --> 00:03:09.760
+we can enjoy a lot of features from Emacs
+
+00:03:09.760 --> 00:03:11.360
+as well as a tighter integration
+
+00:03:11.361 --> 00:03:13.200
+with Emacs itself.
+
+00:03:13.200 --> 00:03:15.840
+For example, as you see here,
+
+00:03:15.841 --> 00:03:20.239
+the title of my buffer is from the directory I'm in.
+
+00:03:20.240 --> 00:03:21.760
+So let's go to my tmp.
+
+00:03:21.760 --> 00:03:23.440
+The title will change.
+
+00:03:23.441 --> 00:03:25.920
+So there's information being exchanged
+
+00:03:25.921 --> 00:03:28.000
+between vterm and Emacs.
+
+00:03:28.000 --> 00:03:30.000
+And of course, the title is not the only place
+
+00:03:30.001 --> 00:03:32.000
+where information is exchanged.
+
+00:03:32.000 --> 00:03:35.920
+I can find a file and I will be in the directory
+
+00:03:35.920 --> 00:03:37.680
+where my terminal is.
+
+00:03:37.681 --> 00:03:40.000
+This feature is also available in ansi-term,
+
+00:03:40.000 --> 00:03:41.360
+and it works also on vterm,
+
+00:03:41.361 --> 00:03:43.440
+and it follows me. So if I go to tmp,
+
+00:03:43.441 --> 00:03:44.720
+I'll get the tmp.
+
+00:03:44.720 --> 00:03:47.120
+If I ssh to a remote server,
+
+00:03:47.121 --> 00:03:50.239
+it will work also on remote servers as well,
+
+00:03:50.240 --> 00:03:53.920
+which is a very nice way to edit files remotely
+
+00:03:53.920 --> 00:03:55.599
+while we're working on a shell.
+
+00:03:55.600 --> 00:03:59.280
+And second, while vterm is not an Elisp interpreter
+
+00:03:59.281 --> 00:04:01.200
+like eshell, what we can do is
+
+00:04:01.201 --> 00:04:04.720
+we can still run Emacs functions.
+
+00:04:04.721 --> 00:04:06.080
+So for example...
+
+00:04:06.081 --> 00:04:08.000
+that requires some configuration.
+
+00:04:08.001 --> 00:04:11.599
+vterm command (message "hi")
+
+00:04:11.600 --> 00:04:13.120
+as you see there's a "hi" here.
+
+00:04:13.121 --> 00:04:14.959
+So what I'm doing is I'm executing
+
+00:04:14.960 --> 00:04:16.239
+the Elisp function hi.
+
+00:04:16.239 --> 00:04:18.959
+I can drop that and turn it around,
+
+00:04:18.960 --> 00:04:21.600
+hash function to run Elisp functions.
+
+00:04:21.601 --> 00:04:24.880
+Or another one, find-file, same.
+
+00:04:24.880 --> 00:04:27.360
+We call this feature "message passing,"
+
+00:04:27.361 --> 00:04:30.000
+and it requires some configuration
+
+00:04:30.001 --> 00:04:32.000
+on the Emacs side as well as in the shell side.
+
+00:04:32.000 --> 00:04:33.440
+It's important to stress
+
+00:04:33.441 --> 00:04:35.360
+what's the nature of vterm.
+
+00:04:35.360 --> 00:04:37.919
+For instance, every time I'm sending a key binding,
+
+00:04:37.920 --> 00:04:40.000
+it's not immediately clear if my intention is
+
+00:04:40.001 --> 00:04:41.840
+to send it to the shell or to Emacs.
+
+00:04:41.841 --> 00:04:44.320
+So vterm implements some reasonable defaults,
+
+00:04:44.320 --> 00:04:46.800
+but at the moment it's mainly packaged
+
+00:04:46.800 --> 00:04:49.120
+to display characters on a screen.
+
+00:04:49.120 --> 00:04:50.720
+So for example, if you're using evil,
+
+00:04:50.721 --> 00:04:52.639
+the editing commands in evil
+
+00:04:52.640 --> 00:04:54.080
+will not work immediately.
+
+00:04:54.081 --> 00:04:55.759
+There's some work to be done
+
+00:04:55.759 --> 00:04:58.160
+and integration can be improved on that side,
+
+00:04:58.161 --> 00:05:00.240
+but sometimes we really want this to behave
+
+00:05:00.240 --> 00:05:02.240
+exactly like a Emacs buffer.
+
+00:05:02.240 --> 00:05:03.680
+We want to be able to search.
+
+00:05:03.681 --> 00:05:06.639
+If I try to get it to search,
+
+00:05:06.640 --> 00:05:07.280
+it will not work.
+
+00:05:07.281 --> 00:05:08.400
+I will send it to the shell.
+
+00:05:08.401 --> 00:05:11.919
+So to do that, we enabled vterm copy mode.
+
+00:05:11.920 --> 00:05:14.720
+As you see, copy mode, and now this buffer
+
+00:05:14.721 --> 00:05:17.039
+is essentially a fundamental buffer.
+
+00:05:17.039 --> 00:05:21.120
+I can move around. I can search.
+
+00:05:21.120 --> 00:05:25.520
+So it must have... I can do everything I want.
+
+00:05:25.521 --> 00:05:26.479
+And there are additional features.
+
+00:05:26.480 --> 00:05:30.560
+For example, I can jump around all the prompts.
+
+00:05:30.561 --> 00:05:32.639
+I find this extremely useful,
+
+00:05:32.639 --> 00:05:35.039
+because I can copy updates from my programs.
+
+00:05:35.040 --> 00:05:38.320
+What I always have to do is
+
+00:05:38.321 --> 00:05:41.520
+I have to Google some errors.
+
+00:05:41.521 --> 00:05:43.120
+So what I do is I select that
+
+00:05:43.120 --> 00:05:45.120
+and I have my keybinding in Emacs conf,
+
+00:05:45.121 --> 00:05:48.479
+and I'm Googling what I have to Google.
+
+00:05:48.480 --> 00:05:51.120
+So this is very nice and if I...
+
+00:05:51.121 --> 00:05:52.639
+now that I have selected something,
+
+00:05:52.640 --> 00:05:53.840
+if I just press return,
+
+00:05:53.841 --> 00:05:56.400
+I will go back to my normal editing mode
+
+00:05:56.401 --> 00:06:00.160
+with the text copied, so I can paste it back.
+
+00:06:00.161 --> 00:06:02.720
+So it's a quick way to interact with copy
+
+00:06:02.721 --> 00:06:05.840
+and interact with the output of a buffer.
+
+00:06:05.841 --> 00:06:09.120
+So finally, let's discuss how to actually use vterm.
+
+00:06:09.121 --> 00:06:10.560
+Let's circle back, let's go,
+
+00:06:10.560 --> 00:06:12.400
+and let's look at the GitHub repo
+
+00:06:12.400 --> 00:06:14.000
+where development is happening.
+
+00:06:14.001 --> 00:06:15.520
+vterm is available in MELPA,
+
+00:06:15.520 --> 00:06:17.759
+but since it's leveraging the power
+
+00:06:17.760 --> 00:06:18.960
+of an external module,
+
+00:06:18.960 --> 00:06:20.479
+you must have Emacs compiled
+
+00:06:20.480 --> 00:06:22.000
+with support for modules,
+
+00:06:22.000 --> 00:06:25.600
+and many distros like Ubuntu, Debian,
+
+00:06:25.600 --> 00:06:26.880
+that's not there. So you have to
+
+00:06:26.881 --> 00:06:29.199
+get Emacs with support for modules:
+
+00:06:29.200 --> 00:06:31.360
+compiling or getting images somewhere else.
+
+00:06:31.361 --> 00:06:33.840
+And also, the first time you are going to use this,
+
+00:06:33.840 --> 00:06:38.960
+which works only on Mac or GNU Linux systems,
+
+00:06:38.961 --> 00:06:41.759
+Emacs will try to find and compile this module,
+
+00:06:41.759 --> 00:06:44.240
+so it's important. This requirement is important.
+
+00:06:44.241 --> 00:06:46.400
+If you're using Windows, well,
+
+00:06:46.401 --> 00:06:49.199
+it's not available and will not work.
+
+00:06:49.199 --> 00:06:53.440
+So to conclude, I want to just advertise this page.
+
+00:06:53.440 --> 00:06:56.240
+If you have problems, look at the issues
+
+00:06:56.240 --> 00:06:58.240
+and open an issue in case.
+
+00:06:58.241 --> 00:06:59.199
+We'll try to help you.
+
+00:06:59.200 --> 00:07:00.800
+We are very excited about vterm,
+
+00:07:00.800 --> 00:07:02.639
+and I think it's a transformative
+
+00:07:02.639 --> 00:07:10.319
+terminal experience inside GNU Emacs.
diff --git a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt b/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt
deleted file mode 100644
index 49db0989..00000000
--- a/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt
+++ /dev/null
@@ -1,634 +0,0 @@
-WEBVTT
-
-00:00:00.880 --> 00:00:03.760
-hello and welcome to the stock
-
-00:00:03.760 --> 00:00:06.080
-the title of the stock is a tour feature
-
-00:00:06.080 --> 00:00:07.919
-a fast and fully featured terminal
-
-00:00:07.919 --> 00:00:08.559
-emulator
-
-00:00:08.559 --> 00:00:11.840
-inside new e-max so let's try to
-
-00:00:11.840 --> 00:00:13.360
-understand what we mean with the pass
-
-00:00:13.360 --> 00:00:14.559
-and fully featured
-
-00:00:14.559 --> 00:00:17.520
-and to do that we'll compare v term with
-
-00:00:17.520 --> 00:00:18.320
-the
-
-00:00:18.320 --> 00:00:20.640
-packages which are built in Emacs mean
-
-00:00:20.640 --> 00:00:22.400
-the term
-
-00:00:22.400 --> 00:00:25.199
-so let's let's jump into the v term so
-
-00:00:25.199 --> 00:00:26.720
-this is a feature buffer
-
-00:00:26.720 --> 00:00:29.679
-and this is a ansi term buffer what I'm
-
-00:00:29.679 --> 00:00:31.519
-going to do now is first I'm going to
-
-00:00:31.519 --> 00:00:32.160
-prove you
-
-00:00:32.160 --> 00:00:35.760
-what we move fast so to do that let me
-
-00:00:35.760 --> 00:00:37.520
-open a large file display on screen or
-
-00:00:37.520 --> 00:00:39.280
-large file this is about one megabyte of
-
-00:00:39.280 --> 00:00:40.239
-data
-
-00:00:40.239 --> 00:00:43.520
-and let me time that it takes about 0.6
-
-00:00:43.520 --> 00:00:44.160
-seconds
-
-00:00:44.160 --> 00:00:47.200
-with feature let's do the same with
-
-00:00:47.200 --> 00:00:49.760
-with ancient term well we already
-
-00:00:49.760 --> 00:00:51.520
-already see the difference
-
-00:00:51.520 --> 00:00:53.039
-so I will use this time to tell you
-
-00:00:53.039 --> 00:00:54.559
-what's different and
-
-00:00:54.559 --> 00:00:57.360
-what is v term exactly so v term is a
-
-00:00:57.360 --> 00:00:58.879
-terminal emulator built
-
-00:00:58.879 --> 00:01:01.120
-on top of an external library the
-
-00:01:01.120 --> 00:01:02.719
-library is called libvi term
-
-00:01:02.719 --> 00:01:05.519
-and is the same library used by newton
-
-00:01:05.519 --> 00:01:07.200
-for their own terminal emulator
-
-00:01:07.200 --> 00:01:10.000
-it's a c library and this is what gives
-
-00:01:10.000 --> 00:01:10.799
-us
-
-00:01:10.799 --> 00:01:15.119
-a lot of good features first the speed
-
-00:01:15.119 --> 00:01:17.280
-time spent here 0.6 is essentially the
-
-00:01:17.280 --> 00:01:18.479
-time that it takes to
-
-00:01:18.479 --> 00:01:21.520
-one convert the emax representation of
-
-00:01:21.520 --> 00:01:22.240
-like text
-
-00:01:22.240 --> 00:01:23.840
-into the visa and representation of what
-
-00:01:23.840 --> 00:01:26.400
-was a string and two into
-
-00:01:26.400 --> 00:01:28.479
-actually displaying that and that can
-
-00:01:28.479 --> 00:01:29.520
-take time
-
-00:01:29.520 --> 00:01:31.840
-if there's a if there's quantification
-
-00:01:31.840 --> 00:01:33.680
-involved so these are the 0.6 seconds
-
-00:01:33.680 --> 00:01:34.240
-there
-
-00:01:34.240 --> 00:01:36.960
-as we say in the in ancestor that's much
-
-00:01:36.960 --> 00:01:37.920
-much
-
-00:01:37.920 --> 00:01:39.920
-more time it's much slower so the
-
-00:01:39.920 --> 00:01:41.680
-terminal will feel much snappier much
-
-00:01:41.680 --> 00:01:42.880
-faster
-
-00:01:42.880 --> 00:01:46.079
-but that's not the main benefit or the
-
-00:01:46.079 --> 00:01:47.840
-only benefit of using this external
-
-00:01:47.840 --> 00:01:48.799
-library
-
-00:01:48.799 --> 00:01:52.320
-feature the second big benefit
-
-00:01:52.320 --> 00:01:55.439
-is that v term has support for all the
-
-00:01:55.439 --> 00:01:56.560
-escape codes
-
-00:01:56.560 --> 00:01:59.200
-that exterm has support for so v term is
-
-00:01:59.200 --> 00:02:01.119
-essentially as running x term
-
-00:02:01.119 --> 00:02:03.600
-inside an imax buffer so let's see that
-
-00:02:03.600 --> 00:02:04.799
-this for example
-
-00:02:04.799 --> 00:02:07.119
-let's start by looking at the support
-
-00:02:07.119 --> 00:02:08.239
-for colors
-
-00:02:08.239 --> 00:02:09.920
-we have support for all the colors out
-
-00:02:09.920 --> 00:02:11.840
-of the box we don't have to do anything
-
-00:02:11.840 --> 00:02:15.040
-and if we did the same here well we have
-
-00:02:15.040 --> 00:02:15.680
-only
-
-00:02:15.680 --> 00:02:17.920
-20 colors there's a way to get all the
-
-00:02:17.920 --> 00:02:19.680
-colors but it's much more involved
-
-00:02:19.680 --> 00:02:23.040
-but this is not where v term shines
-
-00:02:23.040 --> 00:02:26.000
-uh we can run all the commands that we
-
-00:02:26.000 --> 00:02:27.200
-want
-
-00:02:27.200 --> 00:02:30.480
-h top and cdu
-
-00:02:30.480 --> 00:02:33.040
-everything runs here also this title
-
-00:02:33.040 --> 00:02:33.840
-it's a
-
-00:02:33.840 --> 00:02:36.400
-it's a fairly complicated manipulation
-
-00:02:36.400 --> 00:02:37.040
-of
-
-00:02:37.040 --> 00:02:40.879
-the window and it will not work here
-
-00:02:40.879 --> 00:02:42.319
-it just doesn't work actually now the
-
-00:02:42.319 --> 00:02:44.640
-terminal is probably messed up
-
-00:02:44.640 --> 00:02:48.400
-yes so using this external library
-
-00:02:48.400 --> 00:02:50.959
-removes the burden from the developers
-
-00:02:50.959 --> 00:02:52.000
-of having to implement
-
-00:02:52.000 --> 00:02:54.000
-support for all these cape codes we just
-
-00:02:54.000 --> 00:02:55.360
-use those
-
-00:02:55.360 --> 00:02:58.480
-so in many ways running veteran
-
-00:02:58.480 --> 00:03:01.760
-is us running extern inside a max
-
-00:03:01.760 --> 00:03:04.400
-but it's better than that because since
-
-00:03:04.400 --> 00:03:05.840
-this is an e-max buffer
-
-00:03:05.840 --> 00:03:08.879
-we can enjoy a lot of features from
-
-00:03:08.879 --> 00:03:09.760
-Emacs
-
-00:03:09.760 --> 00:03:11.920
-as well as a tighter integration with
-
-00:03:11.920 --> 00:03:13.200
-e-max itself
-
-00:03:13.200 --> 00:03:16.560
-for example as you see here the title of
-
-00:03:16.560 --> 00:03:17.599
-my buffer
-
-00:03:17.599 --> 00:03:20.720
-is from the director I'm in so let's go
-
-00:03:20.720 --> 00:03:21.760
-to my tmp
-
-00:03:21.760 --> 00:03:24.799
-the title will change so there's
-
-00:03:24.799 --> 00:03:26.560
-information being exchanged between v
-
-00:03:26.560 --> 00:03:28.000
-term and index
-
-00:03:28.000 --> 00:03:29.760
-and of course the title is not the only
-
-00:03:29.760 --> 00:03:32.000
-place where information is exchanged
-
-00:03:32.000 --> 00:03:34.799
-I can find a file and I will be in the
-
-00:03:34.799 --> 00:03:35.920
-directory
-
-00:03:35.920 --> 00:03:38.239
-where my terminal is this feature is
-
-00:03:38.239 --> 00:03:40.000
-also available in nc term
-
-00:03:40.000 --> 00:03:41.680
-and it works also on b term and it
-
-00:03:41.680 --> 00:03:43.840
-follows me so if I go to tmp I'll get
-
-00:03:43.840 --> 00:03:44.720
-the tmp
-
-00:03:44.720 --> 00:03:48.000
-if I ssh to a remote server it will work
-
-00:03:48.000 --> 00:03:48.640
-also
-
-00:03:48.640 --> 00:03:51.120
-on remote servers as well which is a
-
-00:03:51.120 --> 00:03:53.920
-very nice way to edit files remotely
-
-00:03:53.920 --> 00:03:55.760
-while we're working on a shelf and
-
-00:03:55.760 --> 00:03:57.360
-second while vterm
-
-00:03:57.360 --> 00:03:59.599
-is not an e-lisp interpreter like
-
-00:03:59.599 --> 00:04:02.159
-initial what we can do is we can
-
-00:04:02.159 --> 00:04:06.080
-still run inbox functions so for example
-
-00:04:06.080 --> 00:04:08.319
-that requires some configuration the
-
-00:04:08.319 --> 00:04:10.159
-term
-
-00:04:10.159 --> 00:04:12.480
-command message I as you see there's a
-
-00:04:12.480 --> 00:04:14.000
-higher so what I'm doing
-
-00:04:14.000 --> 00:04:16.239
-is I'm executing the eagles function I
-
-00:04:16.239 --> 00:04:17.199
-and I can drop that
-
-00:04:17.199 --> 00:04:19.840
-and turn it around uh hash function to
-
-00:04:19.840 --> 00:04:20.320
-run
-
-00:04:20.320 --> 00:04:24.880
-a-list functions or another one file see
-
-00:04:24.880 --> 00:04:27.600
-we call this feature message passing and
-
-00:04:27.600 --> 00:04:28.800
-it requires
-
-00:04:28.800 --> 00:04:30.880
-some configuration on the emac side as
-
-00:04:30.880 --> 00:04:32.000
-well as in the shell side
-
-00:04:32.000 --> 00:04:34.000
-it's important to stress what's the
-
-00:04:34.000 --> 00:04:35.360
-nature of feature
-
-00:04:35.360 --> 00:04:37.360
-for instance every time I'm sending a
-
-00:04:37.360 --> 00:04:39.120
-key binding it's not immediately clear
-
-00:04:39.120 --> 00:04:40.800
-if my intention is to send it to the
-
-00:04:40.800 --> 00:04:42.720
-shell or to imax so v term implements
-
-00:04:42.720 --> 00:04:44.320
-some reasonable defaults
-
-00:04:44.320 --> 00:04:46.800
-but at the moment it's mainly packaged
-
-00:04:46.800 --> 00:04:49.120
-to display characters on a screen
-
-00:04:49.120 --> 00:04:51.199
-so for example if you're using evil the
-
-00:04:51.199 --> 00:04:53.600
-editing commands in evil will not work
-
-00:04:53.600 --> 00:04:55.759
-immediately there's some work to be done
-
-00:04:55.759 --> 00:04:57.840
-and integration can be improved on that
-
-00:04:57.840 --> 00:04:58.479
-side but
-
-00:04:58.479 --> 00:05:00.240
-sometimes we really want this to behave
-
-00:05:00.240 --> 00:05:02.240
-exactly like a imax buffer
-
-00:05:02.240 --> 00:05:05.440
-we want to be able to search if
-
-00:05:05.440 --> 00:05:07.039
-if I try to get it to search it will not
-
-00:05:07.039 --> 00:05:08.880
-work I will send it to the shop so to do
-
-00:05:08.880 --> 00:05:09.360
-that
-
-00:05:09.360 --> 00:05:12.400
-we enabled the term copy mode so as you
-
-00:05:12.400 --> 00:05:12.800
-see
-
-00:05:12.800 --> 00:05:15.280
-copy mode and now this buffer is
-
-00:05:15.280 --> 00:05:17.039
-essentially a fundamental buffer
-
-00:05:17.039 --> 00:05:21.120
-I can move around as I can search
-
-00:05:21.120 --> 00:05:24.400
-uh so it must have I
-
-00:05:24.400 --> 00:05:25.840
-can do everything I want and there are
-
-00:05:25.840 --> 00:05:27.120
-additional features for example I can
-
-00:05:27.120 --> 00:05:29.600
-jump around
-
-00:05:29.600 --> 00:05:31.440
-all the prompts and I find this
-
-00:05:31.440 --> 00:05:32.639
-extremely useful
-
-00:05:32.639 --> 00:05:34.400
-because I can copy update from my
-
-00:05:34.400 --> 00:05:35.919
-programs or
-
-00:05:35.919 --> 00:05:39.199
-what I always have to do is I have to
-
-00:05:39.199 --> 00:05:42.400
-google some errors so what I do is I
-
-00:05:42.400 --> 00:05:43.120
-select that
-
-00:05:43.120 --> 00:05:45.919
-and I have my keybinding in maksakov and
-
-00:05:45.919 --> 00:05:46.880
-I'm googling
-
-00:05:46.880 --> 00:05:49.199
-what I have to google so this is very
-
-00:05:49.199 --> 00:05:50.400
-nice and
-
-00:05:50.400 --> 00:05:52.800
-if I now that have selected something if
-
-00:05:52.800 --> 00:05:54.400
-I just press return I will
-
-00:05:54.400 --> 00:05:57.120
-go back to my normal editing mode with
-
-00:05:57.120 --> 00:05:57.440
-the
-
-00:05:57.440 --> 00:06:00.400
-text copied so I can paste it back so
-
-00:06:00.400 --> 00:06:01.600
-it's a quick way to
-
-00:06:01.600 --> 00:06:04.160
-interact with copy and interact with uh
-
-00:06:04.160 --> 00:06:06.400
-with the output of a buffer so finally
-
-00:06:06.400 --> 00:06:07.840
-let's discuss how to actually
-
-00:06:07.840 --> 00:06:10.560
-use beta let's circle back and let's go
-
-00:06:10.560 --> 00:06:12.400
-and let's look at the github repo
-
-00:06:12.400 --> 00:06:14.400
-where development is happening v term is
-
-00:06:14.400 --> 00:06:15.520
-available in velpa
-
-00:06:15.520 --> 00:06:17.919
-but since it's leveraging the power of
-
-00:06:17.919 --> 00:06:18.960
-an external module
-
-00:06:18.960 --> 00:06:20.639
-you must have Emacs compiled with
-
-00:06:20.639 --> 00:06:22.000
-support for modules
-
-00:06:22.000 --> 00:06:25.600
-and many distros like ubuntu debian
-
-00:06:25.600 --> 00:06:27.199
-that's not there so you have to get
-
-00:06:27.199 --> 00:06:29.840
-Emacs with support for modules compiling
-
-00:06:29.840 --> 00:06:30.160
-or
-
-00:06:30.160 --> 00:06:32.000
-getting images somewhere else and also
-
-00:06:32.000 --> 00:06:33.840
-the first time you are going to use this
-
-00:06:33.840 --> 00:06:34.400
-which
-
-00:06:34.400 --> 00:06:37.440
-works only on mac or
-
-00:06:37.440 --> 00:06:40.319
-new linux systems Emacs will try to find
-
-00:06:40.319 --> 00:06:41.759
-and compile this module
-
-00:06:41.759 --> 00:06:43.680
-so it's important this requirement is
-
-00:06:43.680 --> 00:06:45.440
-important if you're using windows
-
-00:06:45.440 --> 00:06:47.600
-well that's not it's not available and
-
-00:06:47.600 --> 00:06:49.199
-will not work
-
-00:06:49.199 --> 00:06:52.560
-so to conclude I want to just advertise
-
-00:06:52.560 --> 00:06:53.440
-this page
-
-00:06:53.440 --> 00:06:56.240
-if you have problems look at the issues
-
-00:06:56.240 --> 00:06:57.120
-and
-
-00:06:57.120 --> 00:06:59.039
-open unusual in case we'll try to help
-
-00:06:59.039 --> 00:07:00.800
-you we are very excited about feature
-
-00:07:00.800 --> 00:07:02.639
-and I think it's a transformative
-
-00:07:02.639 --> 00:07:10.319
-terminal experience inside glue imax
diff --git a/2020/talks/30.md b/2020/talks/30.md
index 2f5637e8..1b6c41f4 100644
--- a/2020/talks/30.md
+++ b/2020/talks/30.md
@@ -8,12 +8,6 @@ Back to the [[schedule]]
Previous: <a href="/2020/talks/29">Pathing of Least Resistance</a>
Next: <a href="/2020/talks/31">Lakota Language and Emacs</a>
-[[!template id="help" tags="help_with_main_captions"
-summary="main talk does not have captions"
-volunteer=""
-message="""This talk does not have captions yet. Would you like to help [caption this talk](/help_with_main_captions)? You may be able to start with these
-[autogenerated captions](/2020/subtitles/emacsconf-2020--30-a-tour-of-vterm--gabriele-bozzola-sbozzolo-autogen.vtt)."""]]
-
[[!inline pages="internal(2020/info/30)" raw="yes"]]
Sunday, Nov 29 2020, ~ 2:45 PM - 2:55 PM EST