summaryrefslogtreecommitdiffstats
path: root/2023/info/eat-after.md
blob: 41bfbc9073dd5ee8758c8367fe8e6e897f1654b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!-- Automatically generated by emacsconf-publish-after-page -->


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


[[!template new="1" text="""Intro""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]]

[[!template text="""Hello everyone. Welcome to my talk.""" start="00:00:00.000" video="mainVideo-eat" id="subtitle"]]
[[!template text="""I am Akib Azmain Turja and my talk is titled""" start="00:00:04.200" video="mainVideo-eat" id="subtitle"]]
[[!template text="""&quot;Eat and Eat-powered Eshell:""" start="00:00:09.360" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Fast, featureful terminal inside Emacs.&quot;""" start="00:00:11.520" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Benchmarking""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]]

[[!template text="""So I just claimed that Eat is a fast terminal emulator.""" start="00:00:15.440" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Let me show you that. I will print a 1-megabyte sized file""" start="00:00:22.840" video="mainVideo-eat" id="subtitle"]]
[[!template text="""in the terminal using this command.""" start="00:00:33.280" video="mainVideo-eat" id="subtitle"]]
[[!template text="""It takes 0.76 seconds. Now let's benchmark term-mode.""" start="00:00:39.040" video="mainVideo-eat" id="subtitle"]]
[[!template text="""I will be in term -mode. I use the same command,""" start="00:00:47.360" video="mainVideo-eat" id="subtitle"]]
[[!template text="""and it's clearly the loser.""" start="00:00:54.800" video="mainVideo-eat" id="subtitle"]]
[[!template text="""It took 12 seconds, more than an order of magnitude slower.""" start="00:01:06.600" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Let's also measure the speed of return.""" start="00:01:18.320" video="mainVideo-eat" id="subtitle"]]
[[!template text="""And it took 0.79 seconds.""" start="00:01:27.280" video="mainVideo-eat" id="subtitle"]]
[[!template text="""But this is actually a little bit slower than Eat.""" start="00:01:33.480" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Why? That shouldn't happen.""" start="00:01:36.160" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Anyway, hopefully that shows how fast Eat is.""" start="00:01:41.800" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Running programs""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]]

[[!template text="""So let's run some extra programs in Eat,""" start="00:01:49.720" video="mainVideo-eat" id="subtitle"]]
[[!template text="""like top. You can also run htop or even btop.""" start="00:01:54.440" video="mainVideo-eat" id="subtitle"]]
[[!template text="""There is a fancy version of top.""" start="00:02:05.640" video="mainVideo-eat" id="subtitle"]]
[[!template text="""And obviously you can run Emacs in it.""" start="00:02:08.560" video="mainVideo-eat" id="subtitle"]]
[[!template text="""There is mouse support, and there is true color support.""" start="00:02:20.240" video="mainVideo-eat" id="subtitle"]]
[[!template text="""You can show any color in the terminal""" start="00:02:33.880" video="mainVideo-eat" id="subtitle"]]
[[!template text="""as long as your main display supports it.""" start="00:02:38.800" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Shell integration""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]]

[[!template text="""And then there is shell integration.""" start="00:02:47.080" video="mainVideo-eat" id="subtitle"]]
[[!template text="""For example, directory tracking.""" start="00:02:50.360" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Like, I can switch to some other directory""" start="00:02:52.400" video="mainVideo-eat" id="subtitle"]]
[[!template text="""and Emacs follows the shell directory.""" start="00:03:07.480" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Prompt annotation""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]]

[[!template text="""Then there is prompt annotation,""" start="00:03:11.920" video="mainVideo-eat" id="subtitle"]]
[[!template text="""this column. These zeros indicate""" start="00:03:16.440" video="mainVideo-eat" id="subtitle"]]
[[!template text="""that the command has executed successfully.""" start="00:03:20.320" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Then you can navigate between commands like this.""" start="00:03:27.080" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Message passing""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]]

[[!template text="""There is message passing.""" start="00:03:37.680" video="mainVideo-eat" id="subtitle"]]
[[!template text="""By message passing, I mean sending something""" start="00:03:39.400" video="mainVideo-eat" id="subtitle"]]
[[!template text="""from the terminal to the host Emacs.""" start="00:03:44.120" video="mainVideo-eat" id="subtitle"]]
[[!template text="""By host Emacs, I mean Emacs running the terminal.""" start="00:03:46.960" video="mainVideo-eat" id="subtitle"]]
[[!template text="""For example I can say &quot;hi&quot; and it's showing &quot;hi&quot;""" start="00:03:52.120" video="mainVideo-eat" id="subtitle"]]
[[!template text="""in this echo area of my Emacs.""" start="00:03:57.440" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Shell integration""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]]

[[!template text="""Then let's show you the killer feature of Eat,""" start="00:04:03.520" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Eat's shell integration.""" start="00:04:08.680" video="mainVideo-eat" id="subtitle"]]
[[!template text="""You can run any program in it. For example: top, btop,""" start="00:04:20.240" video="mainVideo-eat" id="subtitle"]]
[[!template text="""and obviously Emacs itself.""" start="00:04:37.840" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Input modes""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]]

[[!template text="""So let's discuss how to use Eat. There are four input modes.""" start="00:04:52.160" video="mainVideo-eat" id="subtitle"]]
[[!template text="""The first one is semi-char mode. That is the default mode.""" start="00:05:03.160" video="mainVideo-eat" id="subtitle"]]
[[!template text="""This is like vterm. All keys are the same to your terminal""" start="00:05:07.320" video="mainVideo-eat" id="subtitle"]]
[[!template text="""except these keys: C-c, C-x, C-g, M-x, etc.""" start="00:05:10.920" video="mainVideo-eat" id="subtitle"]]
[[!template text="""And then there is char-mode, where all keys""" start="00:05:17.880" video="mainVideo-eat" id="subtitle"]]
[[!template text="""are same to your terminal, except this M-RET key""" start="00:05:20.600" video="mainVideo-eat" id="subtitle"]]
[[!template text="""which takes you back to the semi-char mode.""" start="00:05:26.920" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Then there is Emacs mode where you can select""" start="00:05:29.680" video="mainVideo-eat" id="subtitle"]]
[[!template text="""and copy from the terminal buffer.""" start="00:05:34.560" video="mainVideo-eat" id="subtitle"]]
[[!template text="""And finally, there is line mode.""" start="00:05:39.720" video="mainVideo-eat" id="subtitle"]]
[[!template text="""You can use it to use your terminal like a comint buffer.""" start="00:05:42.680" video="mainVideo-eat" id="subtitle"]]
[[!template text="""All these input modes are available in both Eat""" start="00:05:49.200" video="mainVideo-eat" id="subtitle"]]
[[!template text="""and eat-eshell mode, except this line mode--""" start="00:05:56.000" video="mainVideo-eat" id="subtitle"]]
[[!template text="""it's only available on Eat.""" start="00:06:05.880" video="mainVideo-eat" id="subtitle"]]
[[!template text="""By &quot;on Eat&quot;, I mean the terminal you get""" start="00:06:10.440" video="mainVideo-eat" id="subtitle"]]
[[!template text="""by this eat command. By eshell, I mean""" start="00:06:13.960" video="mainVideo-eat" id="subtitle"]]
[[!template text="""when eat-eshell integration is enabled""" start="00:06:20.160" video="mainVideo-eat" id="subtitle"]]
[[!template text="""inside the eshell buffer.""" start="00:06:23.145" video="mainVideo-eat" id="subtitle"]]

[[!template new="1" text="""Documentation""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]]

[[!template text="""There is an info manual,""" start="00:06:33.760" video="mainVideo-eat" id="subtitle"]]
[[!template text="""And also the README is quite informative""" start="00:06:36.720" video="mainVideo-eat" id="subtitle"]]
[[!template text="""for you to get started.""" start="00:06:51.600" video="mainVideo-eat" id="subtitle"]]
[[!template text="""If you hit any problem,""" start="00:06:55.000" video="mainVideo-eat" id="subtitle"]]
[[!template text="""there is a dedicated chapter for debugging that,""" start="00:07:13.520" video="mainVideo-eat" id="subtitle"]]
[[!template text="""a common problems chapter.""" start="00:07:22.960" video="mainVideo-eat" id="subtitle"]]
[[!template text="""If your problem is still not fixed,""" start="00:07:26.120" video="mainVideo-eat" id="subtitle"]]
[[!template text="""please report it to me.""" start="00:07:28.000" video="mainVideo-eat" id="subtitle"]]
[[!template text="""This helps me improve it for everyone.""" start="00:07:29.520" video="mainVideo-eat" id="subtitle"]]
[[!template text="""When you report, please read this chapter""" start="00:07:36.120" video="mainVideo-eat" id="subtitle"]]
[[!template text="""so that you can make a better bug report.""" start="00:07:40.360" video="mainVideo-eat" id="subtitle"]]
[[!template text="""I am really looking forward to how people use it""" start="00:07:53.160" video="mainVideo-eat" id="subtitle"]]
[[!template text="""in their workflow.""" start="00:07:57.640" video="mainVideo-eat" id="subtitle"]]
[[!template text="""I am excited about that.""" start="00:07:59.080" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Hopefully you enjoyed my talk. That was all.""" start="00:08:03.480" video="mainVideo-eat" id="subtitle"]]
[[!template text="""Enjoy EmacsConf. Goodbye.""" start="00:08:10.760" video="mainVideo-eat" id="subtitle"]]

Questions or comments? Please e-mail [akib@disroot.org](mailto:akib@disroot.org?subject=Comment%20for%20EmacsConf%202023%20eat%3A%20Eat%20and%20Eat%20powered%20Eshell%2C%20fast%20featureful%20terminal%20inside%20Emacs)


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