summaryrefslogblamecommitdiffstats
path: root/2023/captions/emacsconf-2023-eat--eat-and-eat-powered-eshell-fast-featureful-terminal-inside-emacs--akib-azmain-turja--main.vtt
blob: ccc2126facbd6f3d3a95c549d0289269d0c13957 (plain) (tree)



















































































































































































































































                                                            
WEBVTT captioned by sachac

NOTE Intro

00:00:00.000 --> 00:00:04.199
Hello everyone. Welcome to my talk.

00:00:04.200 --> 00:00:09.359
I am Akib Azmain Turja and my talk is titled

00:00:09.360 --> 00:00:11.519
"Eat and Eat-powered Eshell:

00:00:11.520 --> 00:00:15.439
Fast, featureful terminal inside Emacs."

NOTE Benchmarking

00:00:15.440 --> 00:00:22.839
So I just claimed that Eat is a fast terminal emulator.

00:00:22.840 --> 00:00:33.279
Let me show you that. I will print a 1-megabyte sized file

00:00:33.280 --> 00:00:39.039
in the terminal using this command.

00:00:39.040 --> 00:00:47.359
It takes 0.76 seconds. Now let's benchmark term-mode.

00:00:47.360 --> 00:00:54.799
I will be in term -mode. I use the same command,

00:00:54.800 --> 00:01:06.599
and it's clearly the loser.

00:01:06.600 --> 00:01:18.319
It took 12 seconds, more than an order of magnitude slower.

00:01:18.320 --> 00:01:27.279
Let's also measure the speed of return.

00:01:27.280 --> 00:01:33.479
And it took 0.79 seconds.

00:01:33.480 --> 00:01:36.159
But this is actually a little bit slower than Eat.

00:01:36.160 --> 00:01:41.799
Why? That shouldn't happen.

00:01:41.800 --> 00:01:49.719
Anyway, hopefully that shows how fast Eat is.

NOTE Running programs

00:01:49.720 --> 00:01:54.439
So let's run some extra programs in Eat,

00:01:54.440 --> 00:02:05.639
like top. You can also run htop or even btop.

00:02:05.640 --> 00:02:08.559
There is a fancy version of top.

00:02:08.560 --> 00:02:20.239
And obviously you can run Emacs in it.

00:02:20.240 --> 00:02:33.879
There is mouse support, and there is true color support.

00:02:33.880 --> 00:02:38.799
You can show any color in the terminal

00:02:38.800 --> 00:02:47.079
as long as your main display supports it.

NOTE Shell integration

00:02:47.080 --> 00:02:50.359
And then there is shell integration.

00:02:50.360 --> 00:02:52.399
For example, directory tracking.

00:02:52.400 --> 00:03:07.479
Like, I can switch to some other directory

00:03:07.480 --> 00:03:11.919
and Emacs follows the shell directory.

NOTE Prompt annotation

00:03:11.920 --> 00:03:16.439
Then there is prompt annotation,

00:03:16.440 --> 00:03:20.319
this column. These zeros indicate

00:03:20.320 --> 00:03:27.079
that the command has executed successfully.

00:03:27.080 --> 00:03:37.679
Then you can navigate between commands like this.

NOTE Message passing

00:03:37.680 --> 00:03:39.399
There is message passing.

00:03:39.400 --> 00:03:44.119
By message passing, I mean sending something

00:03:44.120 --> 00:03:46.959
from the terminal to the host Emacs.

00:03:46.960 --> 00:03:52.119
By host Emacs, I mean Emacs running the terminal.

00:03:52.120 --> 00:03:57.439
For example I can say "hi" and it's showing "hi"

00:03:57.440 --> 00:04:03.519
in this echo area of my Emacs.

NOTE Shell integration

00:04:03.520 --> 00:04:08.679
Then let's show you the killer feature of Eat,

00:04:08.680 --> 00:04:20.239
Eat's shell integration.

00:04:20.240 --> 00:04:37.839
You can run any program in it. For example: top, btop,

00:04:37.840 --> 00:04:52.159
and obviously Emacs itself.

NOTE Input modes

00:04:52.160 --> 00:05:03.159
So let's discuss how to use Eat. There are four input modes.

00:05:03.160 --> 00:05:07.319
The first one is semi-char mode. That is the default mode.

00:05:07.320 --> 00:05:10.919
This is like vterm. All keys are the same to your terminal

00:05:10.920 --> 00:05:17.879
except these keys: C-c, C-x, C-g, M-x, etc.

00:05:17.880 --> 00:05:20.599
And then there is char-mode, where all keys

00:05:20.600 --> 00:05:26.919
are same to your terminal, except this M-RET key

00:05:26.920 --> 00:05:29.679
which takes you back to the semi-char mode.

00:05:29.680 --> 00:05:34.559
Then there is Emacs mode where you can select

00:05:34.560 --> 00:05:39.719
and copy from the terminal buffer.

00:05:39.720 --> 00:05:42.679
And finally, there is line mode.

00:05:42.680 --> 00:05:49.199
You can use it to use your terminal like a comint buffer.

00:05:49.200 --> 00:05:55.999
All these input modes are available in both Eat

00:05:56.000 --> 00:06:05.879
and eat-eshell mode, except this line mode--

00:06:05.880 --> 00:06:10.439
it's only available on Eat.

00:06:10.440 --> 00:06:13.959
By "on Eat", I mean the terminal you get

00:06:13.960 --> 00:06:20.159
by this eat command. By eshell, I mean

00:06:20.160 --> 00:06:23.144
when eat-eshell integration is enabled

00:06:23.145 --> 00:06:28.446
inside the eshell buffer.

NOTE Documentation

00:06:33.760 --> 00:06:36.719
There is an info manual,

00:06:36.720 --> 00:06:51.599
And also the README is quite informative

00:06:51.600 --> 00:06:54.999
for you to get started.

00:06:55.000 --> 00:07:13.519
If you hit any problem,

00:07:13.520 --> 00:07:22.959
there is a dedicated chapter for debugging that,

00:07:22.960 --> 00:07:26.119
a common problems chapter.

00:07:26.120 --> 00:07:27.999
If your problem is still not fixed,

00:07:28.000 --> 00:07:29.519
please report it to me.

00:07:29.520 --> 00:07:36.119
This helps me improve it for everyone.

00:07:36.120 --> 00:07:40.359
When you report, please read this chapter

00:07:40.360 --> 00:07:53.159
so that you can make a better bug report.

00:07:53.160 --> 00:07:57.639
I am really looking forward to how people use it

00:07:57.640 --> 00:07:59.079
in their workflow.

00:07:59.080 --> 00:08:03.479
I am excited about that.

00:08:03.480 --> 00:08:10.759
Hopefully you enjoyed my talk. That was all.

00:08:10.760 --> 00:08:12.720
Enjoy EmacsConf. Goodbye.