WEBVTT

00:00:00.000 --> 00:00:03.319
Aesthetically, Lua is super ugly. I hate looking

00:00:03.319 --> 00:00:07.019
at Lua. I don't particularly like enjoying Lua.

00:00:07.700 --> 00:00:13.060
You just run Terminal. We put the name of our

00:00:13.060 --> 00:00:18.460
company in there. No, I'm just kidding. I'm waiting.

00:00:18.539 --> 00:00:20.100
After I do this, I know someone's going to make

00:00:20.100 --> 00:00:22.640
this package in Emacs. I'm giving away competitive

00:00:22.640 --> 00:00:26.760
advantage here. This is new tech. I was really

00:00:26.760 --> 00:00:28.620
hoping you were going to say... Edit, you know,

00:00:28.660 --> 00:00:31.379
edit videos, edit music, edit text. Those are

00:00:31.379 --> 00:00:32.880
all the things that I don't do inside Emacs.

00:00:34.960 --> 00:00:36.880
But if you're like, oh, it just... Every time

00:00:36.880 --> 00:00:38.500
I open NeoVim and auto updates, it pulls the

00:00:38.500 --> 00:00:40.579
latest NeoVim update and pulls the latest lazy

00:00:40.579 --> 00:00:43.200
thing. Yeah. Possibly from the same day. Nobody's

00:00:43.200 --> 00:00:44.600
got time to sync those up together. You're touching

00:00:44.600 --> 00:00:47.560
a sore spot for me right now, TJ. I know I am.

00:00:47.579 --> 00:00:49.679
I know. I'm helping. I'm helping, Greg. I'm helping.

00:00:49.700 --> 00:00:52.460
I appreciate it. You know, he's kind of a controversial

00:00:52.460 --> 00:00:54.159
person. Are we still recording? Are we still

00:00:54.159 --> 00:00:57.579
live? Yeah, we're live. We're live. No, but time

00:00:57.579 --> 00:00:59.920
to take this pride. Yeah, yeah. If you're listening

00:00:59.920 --> 00:01:02.219
to this as a podcast, remember that it was originally

00:01:02.219 --> 00:01:04.140
recorded as a video. If you're not following

00:01:04.140 --> 00:01:05.829
along, you can go to my YouTube channel. And

00:01:05.829 --> 00:01:07.390
if you want to support me to keep this podcast

00:01:07.390 --> 00:01:09.890
going, you can donate in Ko -Fi. I'm going to

00:01:09.890 --> 00:01:11.469
leave a link in the description. So let's get

00:01:11.469 --> 00:01:14.849
started with this chapter then. There's a discussion

00:01:14.849 --> 00:01:17.909
going on between the only two editors out there

00:01:17.909 --> 00:01:21.969
that matter. And those are Neovim and Emacs.

00:01:22.150 --> 00:01:24.810
There's other editors out there as well. I don't

00:01:24.810 --> 00:01:26.609
know. Cursor is the only one I know. I have never

00:01:26.609 --> 00:01:30.890
installed it. I've never used it, but... ED is

00:01:30.890 --> 00:01:36.040
another. Oh, yeah. I actually just handed the

00:01:36.040 --> 00:01:38.879
CEO of Cursor the NeoVim help manual printed

00:01:38.879 --> 00:01:41.980
out, first page of it yesterday. Not joking.

00:01:42.299 --> 00:01:46.019
Really? Yeah, when I was in San Francisco, I

00:01:46.019 --> 00:01:51.680
handed him a signed copy. Man. By the way, thanks

00:01:51.680 --> 00:01:56.239
for showing up, TJ, because we were missing a

00:01:56.239 --> 00:01:59.560
guest, so I reached out to TJ and he accepted.

00:01:59.859 --> 00:02:02.340
Really appreciate it. I also want to apologize

00:02:02.340 --> 00:02:04.540
with the rest of you because I have to reschedule

00:02:04.540 --> 00:02:06.439
like, I don't know, four or five different times.

00:02:06.500 --> 00:02:09.520
There was a lot of back and forth. So apologize

00:02:09.520 --> 00:02:13.939
for that, guys. And what are we doing? We're

00:02:13.939 --> 00:02:16.379
just going to discuss, you know, friendly, talk

00:02:16.379 --> 00:02:19.800
about the different, well, the two editors. Okay,

00:02:19.860 --> 00:02:24.900
so let's start by introducing each other, just

00:02:24.900 --> 00:02:27.580
in case there's someone in the audience that

00:02:27.580 --> 00:02:30.889
doesn't know who you are. Two minutes. That's

00:02:30.889 --> 00:02:35.110
what I have in the agenda here. Introduce each

00:02:35.110 --> 00:02:40.069
one of the guests. Demos. Each one of the guests

00:02:40.069 --> 00:02:42.129
is just going to talk about the tool that they

00:02:42.129 --> 00:02:44.969
use. Five minute seats approximately or seven

00:02:44.969 --> 00:02:47.370
minutes. That's going to be a total of 30 minutes

00:02:47.370 --> 00:02:49.969
around that. Experience. If you have experience

00:02:49.969 --> 00:02:53.689
with the opposite tool or not. And what would

00:02:53.689 --> 00:02:57.199
you recommend someone starting with? with all

00:02:57.199 --> 00:03:00.840
this, Neovim, Emacs, why, and if there's other

00:03:00.840 --> 00:03:04.159
editors that you would recommend, right? So let's

00:03:04.159 --> 00:03:08.460
just start with introductions. TJ, let's go with

00:03:08.460 --> 00:03:13.139
you. Cool. I'm TJ DeVries. You may see me around

00:03:13.139 --> 00:03:17.240
as TJDV. I'm working at terminal .shop these

00:03:17.240 --> 00:03:19.639
days. We do coffee through the terminal. You

00:03:19.639 --> 00:03:23.919
can buy it, ssh, terminal .shop. And we also

00:03:23.919 --> 00:03:25.680
do a lot of other stuff. I work with the Primogen

00:03:25.680 --> 00:03:29.520
a lot on making videos, hosting events, and doing

00:03:29.520 --> 00:03:32.759
random programming stuff. So you'll see us, I

00:03:32.759 --> 00:03:35.120
think, if you didn't see us in the tower earlier

00:03:35.120 --> 00:03:36.960
this year, we built a video game in a week in

00:03:36.960 --> 00:03:38.979
a water tower. Tower defense game in a water

00:03:38.979 --> 00:03:42.400
tower. So there you go. And we're going to go

00:03:42.400 --> 00:03:43.860
back to that later this year. So you can keep

00:03:43.860 --> 00:03:46.759
your eye out for that. Are you the CEO of Terminal

00:03:46.759 --> 00:03:49.939
.shop? We've got a lot of them. We've got several.

00:03:50.219 --> 00:03:55.469
Yeah. Okay, awesome. Now, we also have DT with

00:03:55.469 --> 00:04:00.849
us. Yeah, my name is Derek DT. The channel on

00:04:00.849 --> 00:04:03.289
YouTube and Odyssey is DistroTube. I typically

00:04:03.289 --> 00:04:06.270
talk about Linux -related topics, free open -source

00:04:06.270 --> 00:04:10.009
software, lots and lots of videos over the years

00:04:10.009 --> 00:04:17.500
on Vim and Emacs, so probably 100. Lots of stuff.

00:04:17.600 --> 00:04:20.779
Of course, various shell utilities and scripting

00:04:20.779 --> 00:04:23.399
and a lot of nerdy stuff and some fun stuff as

00:04:23.399 --> 00:04:27.699
well. I have spammed the YouTube algorithm, so

00:04:27.699 --> 00:04:30.180
you might have seen me in your search results.

00:04:30.379 --> 00:04:32.680
So that is the goal. That's the game I'm playing.

00:04:32.959 --> 00:04:36.399
I want to thank the first person that got the

00:04:36.399 --> 00:04:40.620
CEO YouTube membership. That is Web23. You should

00:04:40.620 --> 00:04:43.500
be able to see the name somewhere around here.

00:04:44.000 --> 00:04:47.040
alongside with the website. So if you want to

00:04:47.040 --> 00:04:49.459
support me and my family so that I can keep making

00:04:49.459 --> 00:04:52.500
these videos, I'm going to leave a link in the

00:04:52.500 --> 00:04:54.819
video description. You can consider becoming

00:04:54.819 --> 00:04:58.180
a YouTube member. You get different perks with

00:04:58.180 --> 00:05:00.519
the different memberships, but if you become

00:05:00.519 --> 00:05:03.939
a CEO, I have to say your name on the credits

00:05:03.939 --> 00:05:06.879
of each one of the videos. But that's not the

00:05:06.879 --> 00:05:09.360
only one. I have different levels. Each one of

00:05:09.360 --> 00:05:13.569
them supports and keep the channel going. Let's

00:05:13.569 --> 00:05:15.870
see if we can get the heart out. Where is it?

00:05:16.589 --> 00:05:19.790
There we go. All right. So let's jump back to

00:05:19.790 --> 00:05:24.949
the video. Awesome. We also have Greg with us.

00:05:25.689 --> 00:05:29.670
Yep. Hey, I'm Gregory. I'm here because I'm on

00:05:29.670 --> 00:05:34.029
the Neonim core maintainer team. I've been involved

00:05:34.029 --> 00:05:37.329
with Neonim as a project for, I think it's been

00:05:37.329 --> 00:05:39.730
about four years now, which is kind of crazy

00:05:39.730 --> 00:05:44.199
to think about. I've been using them for that

00:05:44.199 --> 00:05:50.000
full -time for a lot longer. Unlike, I think,

00:05:50.000 --> 00:05:51.879
a lot of the other guests, I don't have a huge

00:05:51.879 --> 00:05:55.480
online presence, I guess. I spend time in Davin's

00:05:55.480 --> 00:05:58.480
Fits a lot on GitHub and things like that. I

00:05:58.480 --> 00:06:00.839
do have a blog that's linked in my little description

00:06:00.839 --> 00:06:04.339
bubble somewhere over here where I occasionally

00:06:04.339 --> 00:06:09.660
write tech -related stuff. It's not very regular.

00:06:10.389 --> 00:06:12.470
So if you're an RSS subscriber or something,

00:06:12.610 --> 00:06:15.709
you might get one every couple months or something.

00:06:15.889 --> 00:06:19.970
But yeah, aside from that, I work. My background

00:06:19.970 --> 00:06:22.009
in software engineering has been a little bit

00:06:22.009 --> 00:06:24.649
varied. I started out doing web development for

00:06:24.649 --> 00:06:28.870
a technology consulting firm, like JavaScript

00:06:28.870 --> 00:06:32.930
front ends and Java, JSP backend stuff, most

00:06:32.930 --> 00:06:35.279
kind of my roots. And then I went almost full

00:06:35.279 --> 00:06:37.379
into the other direction and started working

00:06:37.379 --> 00:06:40.600
in electrical engineering, FPGAs, embedded, the

00:06:40.600 --> 00:06:42.740
level embedded stuff, which I ended up really

00:06:42.740 --> 00:06:45.680
enjoying a lot. And I'm currently somewhere in

00:06:45.680 --> 00:06:48.360
the middle of doing systems engineering at Cloudflare,

00:06:48.500 --> 00:06:52.540
which I'm also really enjoying. So that's what

00:06:52.540 --> 00:06:54.839
I do during the day. And then my open source

00:06:54.839 --> 00:06:59.560
stuff keeps me busy in my free time. And what

00:06:59.560 --> 00:07:04.699
do you do in the NeoVim team? What are your contributions

00:07:04.699 --> 00:07:09.639
or what? Honestly, a little bit of... I've kind

00:07:09.639 --> 00:07:14.420
of touched a little bit of everything. Like LSP

00:07:14.420 --> 00:07:17.139
and TreeSitter are probably some of the more

00:07:17.139 --> 00:07:20.360
user -casing stuff. I would say probably my main

00:07:20.360 --> 00:07:22.519
contributions that are the stuff that I really

00:07:22.519 --> 00:07:24.439
enjoy the most is anything that's related to

00:07:24.439 --> 00:07:27.040
the terminal. So NeoVim, especially in the last

00:07:27.040 --> 00:07:30.720
year or two, I think has seen a lot of improvements.

00:07:31.689 --> 00:07:35.250
and new features related to new terminal standards,

00:07:35.709 --> 00:07:38.769
which we'll talk about, I'm sure. And that kind

00:07:38.769 --> 00:07:40.889
of dovetails nicely with also another project

00:07:40.889 --> 00:07:44.689
that I'm involved with, Ghosty. And that's been

00:07:44.689 --> 00:07:48.410
a pretty beneficial relationship because NeoBIM

00:07:48.410 --> 00:07:50.629
is a fairly popular terminal -based tech center,

00:07:50.910 --> 00:07:54.329
and Ghosty is a fairly popular terminal. And

00:07:54.329 --> 00:07:55.629
so there's a lot of overlap between those two.

00:07:55.769 --> 00:07:59.709
And it has happened a lot of times where if you

00:07:59.709 --> 00:08:02.529
find a bug... And NeoVim through Ghosty helps

00:08:02.529 --> 00:08:05.889
me triage the bug quicker. And then also, as

00:08:05.889 --> 00:08:07.930
we develop new features in Ghosty, I can test

00:08:07.930 --> 00:08:11.069
them in NeoVim and vice versa. A big problem

00:08:11.069 --> 00:08:15.569
with the terminal stuff is there's not a real

00:08:15.569 --> 00:08:17.850
standards body. The way that new features develop

00:08:17.850 --> 00:08:20.870
is someone proposes something, and then you have

00:08:20.870 --> 00:08:23.370
to get agreement with other terminal emulators

00:08:23.370 --> 00:08:25.009
or applications to say, yeah, we want to do this.

00:08:25.230 --> 00:08:27.670
And you see this a lot where someone will propose

00:08:27.670 --> 00:08:31.279
something. And then other people say, okay, it

00:08:31.279 --> 00:08:33.019
sounds nice, but who implements this, right?

00:08:33.100 --> 00:08:35.299
Like, as a terminal emulator author, no applications

00:08:35.299 --> 00:08:38.399
do this, so why would I bother? And as a terminal

00:08:38.399 --> 00:08:40.139
application author, you say, well, no terminals

00:08:40.139 --> 00:08:42.080
support this, so why would I bother? And so you

00:08:42.080 --> 00:08:45.100
kind of create this bootstrapping problem. So

00:08:45.100 --> 00:08:47.580
with me double -dipping in Ghosty and NeoVim,

00:08:47.700 --> 00:08:50.100
we've kind of found a hack around this because

00:08:50.100 --> 00:08:52.980
I can just say, yeah, Ghosty creates this new

00:08:52.980 --> 00:08:54.360
feature, I'll just go implement it in NeoVim.

00:08:54.360 --> 00:08:57.309
You know, no problem. We found out the answer

00:08:57.309 --> 00:09:00.250
was Greg both times. That's the answer. Who writes

00:09:00.250 --> 00:09:04.429
this? No matter what, it's always Greg. And so

00:09:04.429 --> 00:09:07.570
contributor in both of the projects, like are

00:09:07.570 --> 00:09:12.690
you really active in Ghosty as well? I used to

00:09:12.690 --> 00:09:14.889
be a lot more. So I'm still on the maintainer

00:09:14.889 --> 00:09:17.250
team. I still technically have the ability to

00:09:17.250 --> 00:09:19.610
do like merge PRs and stuff, although I don't

00:09:19.610 --> 00:09:21.970
do that very often these days. I try to stay

00:09:21.970 --> 00:09:24.210
involved with like the discussions, but between

00:09:24.210 --> 00:09:30.179
working full time. working with NeoVim and his

00:09:30.179 --> 00:09:32.899
personal life stuff. Don't have as much time

00:09:32.899 --> 00:09:35.539
today as I used to. Also, frankly, it's kind

00:09:35.539 --> 00:09:37.779
of a testament towards Ghost's maturity because

00:09:37.779 --> 00:09:39.679
a lot of my contributions to Ghost in the early

00:09:39.679 --> 00:09:42.440
days were just, I was using this new terminal

00:09:42.440 --> 00:09:44.080
and I was like, oh, it doesn't have this feature

00:09:44.080 --> 00:09:46.379
that I want. So I would go just implement it

00:09:46.379 --> 00:09:48.519
and that would be my contribution. And I just

00:09:48.519 --> 00:09:51.879
did that enough times where I was able to develop

00:09:51.879 --> 00:09:55.500
trust and credibility in the community. But today,

00:09:55.620 --> 00:09:57.679
Ghost Tea is like, as far as I'm concerned, it's

00:09:57.679 --> 00:10:00.879
perfect. Like, I have zero complaints or feature

00:10:00.879 --> 00:10:02.580
requests. It just does exactly what I want. So

00:10:02.580 --> 00:10:04.399
I was like, well, I don't have any real strong

00:10:04.399 --> 00:10:09.559
motivation to... We need sessions. Yeah. I didn't

00:10:09.559 --> 00:10:11.500
say it's perfect for everybody. It's just perfect

00:10:11.500 --> 00:10:14.179
for me. Like, for what I need it to do. It does

00:10:14.179 --> 00:10:17.120
everything. So I'm kind of just like, all right,

00:10:17.139 --> 00:10:19.200
just feel done to me. Don't make me look selfish.

00:10:20.360 --> 00:10:25.429
But it's in very good hands. I mean... The other

00:10:25.429 --> 00:10:29.490
maintainer team is incredible. So my reduced

00:10:29.490 --> 00:10:33.090
contributions certainly are not having a negative

00:10:33.090 --> 00:10:36.330
impact on the project. Awesome. Okay. Thanks

00:10:36.330 --> 00:10:39.409
for sharing that. We also have Joshua Blaze with

00:10:39.409 --> 00:10:42.450
us. Hey, everybody. I'm Joshua. When are you

00:10:42.450 --> 00:10:45.990
shipping coffee to Canada, Teej? We tried. And

00:10:45.990 --> 00:10:49.250
like, I'm not joking, like 25 % of them just

00:10:49.250 --> 00:10:52.919
disappeared in customs. so we we did try we have

00:10:52.919 --> 00:10:54.899
to find a canadian roaster so as soon as we do

00:10:54.899 --> 00:10:56.440
all i can let you know i'll let you know yeah

00:10:56.440 --> 00:10:58.799
keep me posted because i looked at ordering the

00:10:58.799 --> 00:11:01.740
other day yeah i'm joshua blaze i uh i use emacs

00:11:01.740 --> 00:11:05.340
i uh clearly i've written some stuff on it on

00:11:05.340 --> 00:11:08.840
the internet um and uh written a book in it actually

00:11:08.840 --> 00:11:12.360
and uh program day -to -day in it it's uh it's

00:11:12.360 --> 00:11:15.620
kind of taking over my computer almost holistically

00:11:15.620 --> 00:11:20.059
so it's literally how i use a computer um i am

00:11:20.429 --> 00:11:24.429
emacs meme in that it has essentially taken my

00:11:24.429 --> 00:11:27.190
entire life and uh yeah so that's why i'm on

00:11:27.190 --> 00:11:31.730
this stream oh but you had an adventure with

00:11:31.730 --> 00:11:35.730
new of him are you ashamed of that yes yeah i

00:11:35.730 --> 00:11:39.409
i i did um about a year ago i made a video about

00:11:39.409 --> 00:11:43.149
why i left emacs and i quickly recanted because

00:11:43.149 --> 00:11:46.269
uh it's just not the same it's just not the same

00:11:46.269 --> 00:11:52.649
real issue as prime would say That's funny. All

00:11:52.649 --> 00:11:57.929
right. Thanks, everyone. So I think we can talk

00:11:57.929 --> 00:12:01.769
a lot about each one of the tools, but words

00:12:01.769 --> 00:12:04.970
are not going to do justice or not going to,

00:12:04.970 --> 00:12:08.769
you know, help people take a decision. So that's

00:12:08.769 --> 00:12:11.470
the goal, you know, just if there's someone watching

00:12:11.470 --> 00:12:14.710
this, they hear about both of the editors. You

00:12:14.710 --> 00:12:17.929
have Emacs. They don't know where to start. They

00:12:17.929 --> 00:12:21.230
don't know which one to use. So if you guys can

00:12:21.230 --> 00:12:24.230
show each one of your setups, that's the goal.

00:12:24.330 --> 00:12:28.710
We're going to do it interactive. And people

00:12:28.710 --> 00:12:33.470
as viewers can take their own decisions. So why

00:12:33.470 --> 00:12:35.570
don't we start with that? You want to go first,

00:12:35.750 --> 00:12:39.269
Teach? I want Greg to go first. You want Greg

00:12:39.269 --> 00:12:42.990
to go first? Yeah, I want Greg to go first. I

00:12:42.990 --> 00:12:44.669
want to see how he's using the OVM these days

00:12:44.669 --> 00:12:48.919
so I can steal some tricks. Okay, Greg, want

00:12:48.919 --> 00:12:51.620
me to switch it to your screen? Let's do it.

00:12:52.379 --> 00:12:56.519
All right. I can see it. Okay, so, yeah. All

00:12:56.519 --> 00:12:59.899
right, so this is, I'm sure I don't have to explain

00:12:59.899 --> 00:13:02.039
to any of the people watching this what we're

00:13:02.039 --> 00:13:03.700
looking at here, but this is a terminal emulator,

00:13:03.799 --> 00:13:06.220
of course. This is Ghosty, as we talked about.

00:13:07.700 --> 00:13:12.799
I guess, like any van or DM user will kind of

00:13:12.799 --> 00:13:17.149
say, NeoVim today and Vim 2 can do quite a lot.

00:13:17.250 --> 00:13:19.269
It's become extremely extensible and it really

00:13:19.269 --> 00:13:23.230
is a platform not too dissimilar from VMAX. But

00:13:23.230 --> 00:13:26.230
the way that I use NeoVim and I think most users

00:13:26.230 --> 00:13:29.649
do is that primarily as a text editor inside

00:13:29.649 --> 00:13:33.929
of the shell and kind of the terminal -based

00:13:33.929 --> 00:13:37.860
ecosystem as like a broader IDE. So anyone that

00:13:37.860 --> 00:13:40.200
uses NeoVim or Vim also probably has a lot of

00:13:40.200 --> 00:13:42.799
opinions about their shell and which shell they

00:13:42.799 --> 00:13:44.620
use and how they use it and stuff. And I'm different.

00:13:45.120 --> 00:13:50.820
I use Phish. I'm a big fan of Phish. I don't

00:13:50.820 --> 00:13:53.600
do anything super fancy. I just have the same

00:13:53.600 --> 00:13:58.080
shell prompt that I've been using for... forever

00:13:58.080 --> 00:14:00.259
now. It's the thing that everyone else uses,

00:14:00.320 --> 00:14:02.639
apparently. I didn't realize that when I saw

00:14:02.639 --> 00:14:04.059
it. I was like, oh, that looks nice. And I started

00:14:04.059 --> 00:14:05.940
using it. And then I would watch other people

00:14:05.940 --> 00:14:09.000
share their screens or do YouTube videos. And

00:14:09.000 --> 00:14:12.779
I found out everyone uses this, I guess. So I

00:14:12.779 --> 00:14:16.940
guess I'm just very basic that way. I did write

00:14:16.940 --> 00:14:18.580
it myself, though. I'm not talking about any

00:14:18.580 --> 00:14:20.799
of them right now. I will. I promise. But my

00:14:20.799 --> 00:14:23.620
fish prompt, I did write myself. It's adapted

00:14:23.620 --> 00:14:28.940
from other ones. I really disliked all the built

00:14:28.940 --> 00:14:33.059
-in Git info stuff. It was super laggy on the

00:14:33.059 --> 00:14:34.440
default ones and some of the ones I've looked

00:14:34.440 --> 00:14:39.000
at. So I do like this extremely over -engineered

00:14:39.000 --> 00:14:43.120
phish prompt that I won't walk through this because

00:14:43.120 --> 00:14:46.100
this is not why we're here. But it's almost embarrassing.

00:14:46.259 --> 00:14:49.659
There's like 200 lines of code just for my prompt.

00:14:49.759 --> 00:14:53.519
And it's only because I was obsessed with making

00:14:53.519 --> 00:14:56.860
it. Like, I wanted zero delay between, like,

00:14:56.899 --> 00:14:58.600
I want to be able to, like, spam enter and there

00:14:58.600 --> 00:15:00.659
never be a delay with, like, the git prompt.

00:15:01.019 --> 00:15:04.840
The irony to all of this is that I now use Jujutsu

00:15:04.840 --> 00:15:07.899
instead of git, and so I don't even include my

00:15:07.899 --> 00:15:10.519
git info in my prompt at all anymore. So all

00:15:10.519 --> 00:15:15.580
of that engineering effort is wasted. But the

00:15:15.580 --> 00:15:17.779
one place I do still use git, not Jujutsu, is

00:15:17.779 --> 00:15:21.379
my .file, so you can see it here. I have like

00:15:21.379 --> 00:15:23.679
my branch, but it's like, see, I can like hold

00:15:23.679 --> 00:15:25.759
this down and there's never a delay. So I'm very

00:15:25.759 --> 00:15:30.440
proud of that. Anyway. Yeah. So I use a fish

00:15:30.440 --> 00:15:34.259
as like my shell and that's like my primary development

00:15:34.259 --> 00:15:36.399
environment. And then, you know, there was my

00:15:36.399 --> 00:15:39.240
editor. So I don't really have anything planned,

00:15:39.399 --> 00:15:45.299
I guess. I'll talk about like, so when I start,

00:15:45.320 --> 00:15:47.019
you know, then this is what I see. This is kind

00:15:47.019 --> 00:15:50.240
of what my setup looks like. I have my little,

00:15:50.720 --> 00:15:54.059
LSP notifications in there. Fairly basic status

00:15:54.059 --> 00:15:58.840
line. Nothing too crazy here. I've been using

00:15:58.840 --> 00:16:03.580
Nord as my color scheme forever. I really hate,

00:16:03.679 --> 00:16:05.759
I hate working with color schemes. Like I know

00:16:05.759 --> 00:16:07.620
some people like love super similar color schemes

00:16:07.620 --> 00:16:10.039
every week. I literally cannot think of anything

00:16:10.039 --> 00:16:12.840
less fun. I hate it so much. So I found one that's

00:16:12.840 --> 00:16:16.279
like good enough for me and has like built -in

00:16:16.279 --> 00:16:19.240
presets for a lot of different things. And I

00:16:19.240 --> 00:16:22.419
haven't changed. And Nord is a little bit, it's

00:16:22.419 --> 00:16:24.840
like very blue. Sometimes I feel self -conscious

00:16:24.840 --> 00:16:26.799
about how blue it is when I'm like sharing my

00:16:26.799 --> 00:16:28.740
screen or something. But I like that it doesn't

00:16:28.740 --> 00:16:30.840
have a ton of colors. It has like, it's a fairly

00:16:30.840 --> 00:16:33.259
low contrast. It only has a few different colors

00:16:33.259 --> 00:16:38.120
which I like. I've noticed that most people use

00:16:38.120 --> 00:16:42.399
low contrast themes. Mine is pretty high contrast.

00:16:43.629 --> 00:16:45.970
It leaves you blind. If you look at my screen,

00:16:46.169 --> 00:16:49.230
just look at those colors. But I guess that is

00:16:49.230 --> 00:16:52.090
not so popular, right? Oh, I can't stand low

00:16:52.090 --> 00:16:55.629
contrast. My eyes just can't handle it. Yeah,

00:16:55.669 --> 00:16:57.490
for sure. I think high contrast is better from

00:16:57.490 --> 00:17:00.269
an accessibility standpoint. For me, it's not

00:17:00.269 --> 00:17:03.009
really the low contrast that I like. It's just

00:17:03.009 --> 00:17:06.250
the few colors. If there were more contrast here,

00:17:06.329 --> 00:17:07.849
I don't think I would mind. It's just that I

00:17:07.849 --> 00:17:10.410
like that there's only three or four colors when

00:17:10.410 --> 00:17:12.829
it seems like a lot of... popular color schemes

00:17:12.829 --> 00:17:17.230
today have close to a dozen. And I'm like, I

00:17:17.230 --> 00:17:19.289
don't know. I guess one of my medium spicy takes

00:17:19.289 --> 00:17:23.250
is if your color scheme has... The point of syntax

00:17:23.250 --> 00:17:27.630
highlighting is to quickly draw your eye to relevant

00:17:27.630 --> 00:17:29.470
information to help you visually parse things

00:17:29.470 --> 00:17:33.490
quicker, right? And if you have too much stuff

00:17:33.490 --> 00:17:35.769
highlighted, you end up going too far in the

00:17:35.769 --> 00:17:38.049
other direction. And then it's equivalent to

00:17:38.049 --> 00:17:39.509
having nothing highlighted because there's not

00:17:39.509 --> 00:17:41.769
enough visual distinction. But I don't know how

00:17:41.769 --> 00:17:43.250
many other people have shared that opinion. I

00:17:43.250 --> 00:17:48.170
might be a bug that I'm in by myself. But anyway,

00:17:48.369 --> 00:17:52.470
yeah, so I just use Nord, pretty basic setup.

00:17:52.569 --> 00:17:55.049
I will say like the way that I use NeoVim today

00:17:55.049 --> 00:17:58.230
is I think would look familiar to an old school

00:17:58.230 --> 00:18:06.210
Vim user, right? Like I used Vim years for years

00:18:06.210 --> 00:18:08.579
before I used NeoVim. And I think that really

00:18:08.579 --> 00:18:12.759
had a big influence on kind of the way I think

00:18:12.759 --> 00:18:14.880
about it as a tool and how I use it and how I

00:18:14.880 --> 00:18:19.119
like to use it. So I don't have a lot of eye

00:18:19.119 --> 00:18:26.059
candy. I do have some, for sure. But I try to

00:18:26.059 --> 00:18:30.819
stick to Vim paradigms and the default Vim way,

00:18:30.900 --> 00:18:32.579
so to speak, of doing things as much as I can.

00:18:33.420 --> 00:18:38.470
So that's a big... If one can have a philosophy

00:18:38.470 --> 00:18:43.809
of text editing, I guess that's mine. So when

00:18:43.809 --> 00:18:47.349
it comes to like how I have NeoVim configured,

00:18:47.670 --> 00:18:51.069
I have a lot of custom stuff, right? Like all

00:18:51.069 --> 00:18:57.190
of these directories full of files. Even my plugin

00:18:57.190 --> 00:18:59.230
manager is just like this little shell scripts

00:18:59.230 --> 00:19:02.349
that I wrote, like a hundred lines. This is all

00:19:02.349 --> 00:19:04.650
I have as far as plugins. Oh, okay, okay, okay.

00:19:05.370 --> 00:19:08.730
You don't use LazyVim? No, I don't use Lazy.

00:19:08.849 --> 00:19:11.750
I don't know. I guess when I switched to... So

00:19:11.750 --> 00:19:13.930
when I was using Vim, I used, I don't know, Vimplug,

00:19:13.930 --> 00:19:15.529
and then I used Minpack for a little bit because

00:19:15.529 --> 00:19:18.950
I liked how simple and dumb it was. The way you

00:19:18.950 --> 00:19:20.750
install plugins in Vim, and I know it's a little

00:19:20.750 --> 00:19:23.329
bit different than Emacs, my experience there,

00:19:23.430 --> 00:19:25.150
but in Vim, all you have to do is clone a repo.

00:19:25.349 --> 00:19:27.710
You put some files in a certain directory, and

00:19:27.710 --> 00:19:30.470
then it's installed. That's it. So I was looking

00:19:30.470 --> 00:19:33.759
at... I don't want to call any names out. I don't

00:19:33.759 --> 00:19:35.059
want to name and shame or anything. But I was

00:19:35.059 --> 00:19:37.059
looking at these different plugin managers for

00:19:37.059 --> 00:19:40.140
Neovin, and there were hundreds and hundreds

00:19:40.140 --> 00:19:42.220
and sometimes thousands of lines of code. And

00:19:42.220 --> 00:19:45.180
I was just like, why? To me, it just felt wrong.

00:19:45.440 --> 00:19:49.640
I was like, this should be so simple. A plugin

00:19:49.640 --> 00:19:53.119
manager for Vim is basically a fancy Git wrapper.

00:19:53.920 --> 00:19:56.740
So if I just wrote one myself as a shell script,

00:19:56.920 --> 00:19:59.849
how simple can I make it? And this is all just

00:19:59.849 --> 00:20:02.549
POSIX shell that doesn't use any bashes. So it

00:20:02.549 --> 00:20:09.210
works literally on every Unix POSIX system. And

00:20:09.210 --> 00:20:13.809
then that's it. I don't use a lot of... I'm kind

00:20:13.809 --> 00:20:17.509
of cheating here. Yeah, that is cheating to put

00:20:17.509 --> 00:20:20.049
mini in there. That's like 95 plugins. That is

00:20:20.049 --> 00:20:24.210
a little bit of cheating. It is cheating. I don't

00:20:24.210 --> 00:20:27.630
deny that at all. It is cheating. Of these, I

00:20:27.630 --> 00:20:30.789
use like maybe, I don't know, seven or eight

00:20:30.789 --> 00:20:34.390
of Evgeny's mini plugins in here. I'm waiting

00:20:34.390 --> 00:20:37.309
for the expose when it comes out like mini Anthem

00:20:37.309 --> 00:20:40.809
has like 100 plugins. It's a little bit kind

00:20:40.809 --> 00:20:42.970
of false advertising, don't you think? Like mini?

00:20:43.230 --> 00:20:47.089
I'm just throwing it out there. Yeah. I've been

00:20:47.089 --> 00:20:51.109
trying to get him to do an interview, but it's

00:20:51.109 --> 00:20:52.829
tough. I want to ask him a lot of questions.

00:20:54.650 --> 00:20:58.609
Do you use mini .files? I do use mini .files.

00:20:59.049 --> 00:21:01.730
I guess this is the mini .pick, mini .files.

00:21:03.269 --> 00:21:08.410
I'm a big fan. I like that. I like Evgeny's kind

00:21:08.410 --> 00:21:10.650
of design philosophy with mini .envim that each

00:21:10.650 --> 00:21:13.390
of these are, each one is an individual file,

00:21:13.589 --> 00:21:16.450
right? Like that's it. There's no dependencies.

00:21:16.849 --> 00:21:19.269
Like it's a very simple, it's very easy to read

00:21:19.269 --> 00:21:22.569
and understand if you want to see what's going

00:21:22.569 --> 00:21:24.680
on under the hood. Some of them are pretty big.

00:21:24.799 --> 00:21:27.980
The last time I looked at mini .pic, I think

00:21:27.980 --> 00:21:31.119
it was over a thousand lines long, and I wouldn't

00:21:31.119 --> 00:21:32.539
be surprised if it's gotten even bigger since

00:21:32.539 --> 00:21:36.319
then. But I'm always trying to delete plugins.

00:21:36.660 --> 00:21:39.460
Anytime I have the chance to delete a plugin,

00:21:40.160 --> 00:21:44.000
unironically, a lot of my motivation for PRs

00:21:44.000 --> 00:21:45.599
and work that I've done with NeoVim has been

00:21:45.599 --> 00:21:48.299
adding defaults so that I can delete a plugin.

00:21:50.200 --> 00:21:52.299
Just because I kind of view plugins as like,

00:21:52.339 --> 00:21:56.049
you know. I don't know. It's like almost a form

00:21:56.049 --> 00:21:59.630
of like people dead or something. It's like dependencies.

00:21:59.890 --> 00:22:03.049
I don't like having dependencies, I guess. So

00:22:03.049 --> 00:22:06.410
these are the ones that I use. But what I also

00:22:06.410 --> 00:22:09.690
like, if having many in here is cheating, the

00:22:09.690 --> 00:22:11.890
fact that I also have like... How many files

00:22:11.890 --> 00:22:15.509
do I have in this directory? Okay, I have like

00:22:15.509 --> 00:22:18.210
several. So I mean, I have like a bajillion of

00:22:18.210 --> 00:22:20.789
my own custom stuff in here, right? And this

00:22:20.789 --> 00:22:23.559
is where I think... what I do really starts to

00:22:23.559 --> 00:22:26.859
deviate from your average native user because

00:22:26.859 --> 00:22:32.359
almost... How good is my script? Almost none

00:22:32.359 --> 00:22:37.519
of this is... Let's see. Can I do this from memory?

00:22:37.660 --> 00:22:41.180
No. I don't remember the syntax off the top of

00:22:41.180 --> 00:22:44.960
my head, but... Oh, I can do this, I think. Right?

00:22:46.980 --> 00:22:48.819
I'm trying to find how much of the hair is Lua.

00:22:49.299 --> 00:22:50.819
It's very little, is the point I'm trying to

00:22:50.819 --> 00:22:53.190
make. Almost everything that I have in here is

00:22:53.190 --> 00:22:56.130
a fennel. So just as you're looking in the plugin

00:22:56.130 --> 00:22:58.390
directory, you can see a lot of it is fennel.

00:22:58.430 --> 00:23:01.970
What is that fennel? Oh, the emaxers are going

00:23:01.970 --> 00:23:07.250
to like this. The emaxers... Fennel is a lisp

00:23:07.250 --> 00:23:11.529
that compiles into Lua. So this is when I configure

00:23:11.529 --> 00:23:14.529
NeoBIM, this is what it looks like for me. No

00:23:14.529 --> 00:23:17.890
syntax highlighting, and it's all lisp. So, yeah.

00:23:18.279 --> 00:23:21.000
This is where the Emacs people and I are spiritually

00:23:21.000 --> 00:23:24.680
aligned, because when I discovered Lisp, I don't

00:23:24.680 --> 00:23:28.420
know why, but it just clipped me so well, and

00:23:28.420 --> 00:23:32.460
I just loved it. DT, we can convert him. Well,

00:23:32.460 --> 00:23:35.380
I was thinking, we're getting Josh back in. Maybe

00:23:35.380 --> 00:23:38.420
he didn't know last time. He didn't know he could

00:23:38.420 --> 00:23:42.319
still write Lisp and be in NeoVim. So the way

00:23:42.319 --> 00:23:46.259
that I have this configured is... What I like

00:23:46.259 --> 00:23:48.380
about it is I can write a Fennel file in any

00:23:48.380 --> 00:23:50.680
location that a Lua file works, and it just kind

00:23:50.680 --> 00:23:53.420
of works magically. The way that it happens under

00:23:53.420 --> 00:23:56.460
the hood is I have a tiny little bit of Lua code

00:23:56.460 --> 00:23:59.180
that sets up an auto -commuter, which is like

00:23:59.180 --> 00:24:00.779
an event handler for people that aren't familiar

00:24:00.779 --> 00:24:04.700
with Vim. And then anytime that I write a Fennel

00:24:04.700 --> 00:24:07.160
file in one of these special locations, under

00:24:07.160 --> 00:24:09.640
the hood, it gets automatically ahead of time

00:24:09.640 --> 00:24:13.380
compiled into Lua and then set written to a separate

00:24:13.380 --> 00:24:17.900
directory. Neo4j's runtime path, so that when

00:24:17.900 --> 00:24:20.720
NeoMimp starts, it actually is still loading

00:24:20.720 --> 00:24:25.200
Lua files. But all the source code, so to speak,

00:24:25.220 --> 00:24:29.400
is all on Fennel. And is there a reason for that?

00:24:29.539 --> 00:24:32.039
Is it performance -related, or is it just because

00:24:32.039 --> 00:24:36.279
you like writing Lisp? A reason for using Fennel

00:24:36.279 --> 00:24:39.440
over Lua? Yep. Oh, I don't particularly like

00:24:39.440 --> 00:24:43.140
Lua. Well, I should say, I think Lua... I have

00:24:43.140 --> 00:24:44.599
mixed feelings about Lua's better way to say

00:24:44.599 --> 00:24:48.140
that. I think aesthetically, Lua is super ugly.

00:24:48.359 --> 00:24:51.740
I hate looking at Lua. I don't particularly like

00:24:51.740 --> 00:24:55.119
enjoying Lua. I feel the same way. Yeah, I think

00:24:55.119 --> 00:24:58.140
Lua is an excellent example. Get a better color

00:24:58.140 --> 00:25:04.339
scheme, Greg. That's fair. I know why he likes

00:25:04.339 --> 00:25:08.960
Lua more than Lua. Because when everything is

00:25:08.960 --> 00:25:11.500
a parenthesis, it makes... things so much easier.

00:25:11.579 --> 00:25:14.759
You never have to worry about punctuation. Yeah,

00:25:14.779 --> 00:25:17.559
and I have one of the plugins that I wrote and

00:25:17.559 --> 00:25:19.940
that I still maintain is a Parmper plugin, which

00:25:19.940 --> 00:25:22.220
Lisp users are probably familiar with that. But

00:25:22.220 --> 00:25:25.420
that makes writing Lisp in here so much easier

00:25:25.420 --> 00:25:27.619
because like, let's see if I can demonstrate

00:25:27.619 --> 00:25:31.200
this. But like, as I write, you can see the parentheses

00:25:31.200 --> 00:25:36.019
are auto -completed and are not only auto -completed,

00:25:36.019 --> 00:25:40.109
but like auto -adjusted. I'm just writing random

00:25:40.109 --> 00:25:44.410
crap here. You know what would make writing Lisp

00:25:44.410 --> 00:25:47.190
super nice? Writing it in a Lisp environment.

00:25:48.829 --> 00:25:51.589
That's what I was going to ask, Gregory. Maybe

00:25:51.589 --> 00:25:56.309
NeoVim is not the answer for you. Well, I will

00:25:56.309 --> 00:25:59.549
talk about that when the time comes, but I do

00:25:59.549 --> 00:26:05.950
have another... I do have this plug -in Fennel

00:26:05.950 --> 00:26:08.779
REPL, which kind of Great. It's not anywhere

00:26:08.779 --> 00:26:11.279
close to Emacs. I'm not claiming that it is,

00:26:11.339 --> 00:26:13.900
but it does give you that interactive. So this

00:26:13.900 --> 00:26:17.240
lets you like interact with NeoVM and it kind

00:26:17.240 --> 00:26:21.579
of turns NeoVM into a funnel interpreter. So

00:26:21.579 --> 00:26:24.160
it kind of gives you the little bit of the itch

00:26:24.160 --> 00:26:26.240
that Emacs does. And there are other plugins

00:26:26.240 --> 00:26:27.599
that do this too, right? Like mine is not the

00:26:27.599 --> 00:26:30.140
only one. It's just I have, when it comes to

00:26:30.140 --> 00:26:31.940
stuff like this that I do for fun, I have like

00:26:31.940 --> 00:26:34.900
severe NIH syndrome and I like just, I like doing

00:26:34.900 --> 00:26:37.079
this for fun, right? So it's like, I like to

00:26:37.079 --> 00:26:39.680
do it myself and see if I can do it in a way

00:26:39.680 --> 00:26:47.279
that's simpler and fewer lines of code. How many

00:26:47.279 --> 00:26:50.059
hours do you say you put into your NeoVim configuration

00:26:50.059 --> 00:26:53.420
and tinkering with NeoVim and all that? Has it

00:26:53.420 --> 00:26:58.160
been years of playing around? Yeah, it's over

00:26:58.160 --> 00:27:00.420
the course of many years. I actually don't change

00:27:00.420 --> 00:27:05.859
it much anymore. What happens is I'll just be

00:27:05.859 --> 00:27:07.819
using it to, like, do my day job or whatever,

00:27:07.960 --> 00:27:11.680
right? Or to, like, fix some bug in the event.

00:27:12.140 --> 00:27:15.000
And they'll be like, I wish I could do this,

00:27:15.240 --> 00:27:18.240
right? Like, just recently, an example of this

00:27:18.240 --> 00:27:22.299
is at work, we use TypeScript. And I was working

00:27:22.299 --> 00:27:26.220
with a TypeScript file, and I used the TypeScript

00:27:26.220 --> 00:27:28.279
language server in LSP, and it works really well.

00:27:28.660 --> 00:27:30.819
But it doesn't integrate with Herdier, which

00:27:30.819 --> 00:27:32.740
is, like, the JavaScript or TypeScript formatting

00:27:32.740 --> 00:27:35.390
tool. So I was like, okay, I'll just write a

00:27:35.390 --> 00:27:38.349
little snippet of Fennel that when I open a TypeScript

00:27:38.349 --> 00:27:45.509
file, it will traverse the file structure, find

00:27:45.509 --> 00:27:48.269
the prettier RC file if there is one, and if

00:27:48.269 --> 00:27:50.230
there is, automatically set the formatting program.

00:27:50.450 --> 00:27:52.950
Stuff like that. I was like, this is useful to

00:27:52.950 --> 00:27:57.930
me, so I just sat down and wrote that. So that's

00:27:57.930 --> 00:28:01.690
how this file was born, for instance. So now

00:28:01.690 --> 00:28:04.150
when I open up a TypeScript file, and there's

00:28:04.150 --> 00:28:06.769
a prettier RC somewhere in the file structure,

00:28:07.130 --> 00:28:11.049
it sets the format program options so that I

00:28:11.049 --> 00:28:14.329
can auto -format TypeScript files. So it's stuff

00:28:14.329 --> 00:28:15.569
like that. It's like, okay, I have this need

00:28:15.569 --> 00:28:19.349
to do something, and I just write the code to

00:28:19.349 --> 00:28:22.049
do it. And to me, this is what makes both Neoven

00:28:22.049 --> 00:28:25.579
and Enacs, too. like this is what's so addicting

00:28:25.579 --> 00:28:28.019
about these these editors is that they're fully

00:28:28.019 --> 00:28:30.960
scriptable right like i know tj is coined the

00:28:30.960 --> 00:28:33.079
term like your your personal development environment

00:28:33.079 --> 00:28:36.740
and i 100 agree that's like why people i think

00:28:36.740 --> 00:28:38.819
i think that's why people get intimidated by

00:28:38.819 --> 00:28:42.019
them and also why people are so addicted to them

00:28:42.019 --> 00:28:44.339
right it's because once you kind of once you

00:28:44.339 --> 00:28:47.200
kind of break through the initial pain and get

00:28:47.200 --> 00:28:49.700
over the initial learning curve And you figure

00:28:49.700 --> 00:28:52.880
out, you learn how to make it effortless to just

00:28:52.880 --> 00:28:55.500
adapt this tool to fit you like a perfect glove.

00:28:56.079 --> 00:28:58.839
Why would you ever use anything else? Nothing

00:28:58.839 --> 00:29:03.299
beats that. Stuff like that has just accumulated

00:29:03.299 --> 00:29:05.099
over years and years and years of using this

00:29:05.099 --> 00:29:07.579
tool. And that's how all these files come from.

00:29:07.740 --> 00:29:09.799
I have my own grep implementation that I wrote

00:29:09.799 --> 00:29:12.259
that's asynchronous because the built -in grep

00:29:12.259 --> 00:29:16.940
is... To be frank... It needs to be replaced,

00:29:17.240 --> 00:29:18.779
but that's a really big project, so I haven't

00:29:18.779 --> 00:29:22.180
done it yet. So, like, if I just do this, then,

00:29:22.180 --> 00:29:24.920
I mean, that was... Granted, this is a small

00:29:24.920 --> 00:29:27.859
repo, so it was going to be fast no matter what.

00:29:28.220 --> 00:29:30.640
But, like, in a huge repo, like the Linux kernel

00:29:30.640 --> 00:29:32.740
or something, if you run grep synchronously,

00:29:32.900 --> 00:29:34.279
you're going to be sitting there waiting for

00:29:34.279 --> 00:29:37.119
a very long time. Whereas if you run it asynchronously,

00:29:37.259 --> 00:29:40.279
and, okay, until then, you can kind of stream

00:29:40.279 --> 00:29:42.890
in a result as they come in. So it's just stuff

00:29:42.890 --> 00:29:44.309
like that, right? It's just very much like a

00:29:44.309 --> 00:29:47.009
build your own tools kind of situation. Okay.

00:29:47.309 --> 00:29:54.950
Okay. Awesome. Now, let's try with one of the

00:29:54.950 --> 00:30:02.269
Emacs guys now. Who wants to go first? DT? You

00:30:02.269 --> 00:30:06.029
want to go first? Sure. All right. Let's go.

00:30:06.750 --> 00:30:12.259
Let's see what you have. So my stuff doesn't

00:30:12.259 --> 00:30:14.339
change all that often because over the years

00:30:14.339 --> 00:30:16.859
I've gotten things to the point where I don't

00:30:16.859 --> 00:30:21.880
really configure much. Like my Emacs config.

00:30:22.799 --> 00:30:29.519
If I zoom in. You had to show the very old font

00:30:29.519 --> 00:30:34.839
size, right? You had to do it. Myconfig .org,

00:30:34.980 --> 00:30:37.720
those 1100 lines, a little more than 1100 lines,

00:30:37.920 --> 00:30:41.740
but it is. But because I'm a content creator,

00:30:41.940 --> 00:30:44.500
I don't create my configs necessarily for me.

00:30:44.960 --> 00:30:47.240
And this is the same for everything I do. My

00:30:47.240 --> 00:30:50.059
shell configs, my window manager configs, like

00:30:50.059 --> 00:30:52.819
with Xmonad and Qtel, my configs are massive.

00:30:53.599 --> 00:30:56.819
And that's because I put them out there mainly

00:30:56.819 --> 00:30:59.339
for documentation for other people. I could easily

00:30:59.339 --> 00:31:02.440
remove half the stuff from my Emacs config and

00:31:02.440 --> 00:31:08.400
be fine. So that's one thing. As far as for people

00:31:08.400 --> 00:31:12.069
that are... New to Emacs, you mentioned the variable

00:31:12.069 --> 00:31:15.049
font sizes. One thing that many people are confused

00:31:15.049 --> 00:31:18.410
with, if they're not familiar with what Emacs

00:31:18.410 --> 00:31:20.630
is, many people assume it's a terminal because

00:31:20.630 --> 00:31:23.349
it's all text -based. But it's not really. It's

00:31:23.349 --> 00:31:26.269
actually a graphical program. It's actually a

00:31:26.269 --> 00:31:30.029
GTK program. And it is mostly text -based, but

00:31:30.029 --> 00:31:32.329
because it's a GTK program, I can get images

00:31:32.329 --> 00:31:35.609
in it. I could go to a website right now if I

00:31:35.609 --> 00:31:39.379
wanted to. There's a built -in web browser. called

00:31:39.379 --> 00:31:43.160
EWW here, and I could go to my website, which

00:31:43.160 --> 00:31:46.140
I never update, but here is distro .tube, and

00:31:46.140 --> 00:31:48.359
you see I get images, right? Any images I would

00:31:48.359 --> 00:31:50.420
have had on the page would have come up just

00:31:50.420 --> 00:31:53.759
because that's the nature of Emacs. So you get

00:31:53.759 --> 00:31:56.359
variable font sizes and cool Unicode symbols

00:31:56.359 --> 00:31:59.980
and images. I can use this as a PDF reader, for

00:31:59.980 --> 00:32:02.319
example, because, again, graphical application.

00:32:03.420 --> 00:32:06.359
If you're stuck in a TTY, like you don't have

00:32:06.359 --> 00:32:09.920
a... X server or Wayland server, and you were

00:32:09.920 --> 00:32:12.640
stuck in the TTY, you can launch Emacs inside

00:32:12.640 --> 00:32:15.660
a terminal. You're not going to get any graphical

00:32:15.660 --> 00:32:17.420
stuff, obviously, without a graphical server

00:32:17.420 --> 00:32:19.700
running, but you can run Emacs in the terminal.

00:32:19.759 --> 00:32:22.180
That's not typically what people are trying to

00:32:22.180 --> 00:32:24.240
do. They're trying to use the real Emacs, which

00:32:24.240 --> 00:32:27.140
is the graphical program. Now, why Emacs over

00:32:27.140 --> 00:32:32.740
something like Vim or NeoVim? I often use NeoVim

00:32:32.740 --> 00:32:36.019
on my videos, like when I'm doing things like

00:32:36.019 --> 00:32:38.450
with Teaching people certain shell commands.

00:32:38.769 --> 00:32:41.210
I just pull up a terminal and I launch NeoVim.

00:32:41.250 --> 00:32:43.630
Why do I do that? People often ask. They'll see

00:32:43.630 --> 00:32:46.130
me using Emacs on one video and NeoVim on another.

00:32:46.369 --> 00:32:48.789
If I just used Emacs all the time for everything,

00:32:49.049 --> 00:32:52.309
all the questions I would ever get are Emacs

00:32:52.309 --> 00:32:54.049
related. People just, hey, what's that program

00:32:54.049 --> 00:32:57.329
you just launched? I don't want to be pushing

00:32:57.329 --> 00:33:00.910
Emacs on everybody. I'd like to show them a little

00:33:00.910 --> 00:33:02.900
bit of everything. But the difference between

00:33:02.900 --> 00:33:07.940
Emacs and NeoVim really is Emacs is its own self

00:33:07.940 --> 00:33:11.960
-hosting environment because Emacs is really

00:33:11.960 --> 00:33:14.680
a programming language, Emacs Lisp, and it's

00:33:14.680 --> 00:33:17.380
an interpreter for that language. It's not really

00:33:17.380 --> 00:33:20.420
a text editor. Like, yeah, I can edit text in

00:33:20.420 --> 00:33:23.839
this thing if I want to, but it's really a programming

00:33:23.839 --> 00:33:26.240
language and an interpreter, and any program

00:33:26.240 --> 00:33:29.140
you write using that language, Emacs interprets

00:33:29.140 --> 00:33:31.660
it. And we've got a million things. Like I could

00:33:31.660 --> 00:33:34.279
launch this here. This looks like a terminal.

00:33:34.519 --> 00:33:37.019
It's actually the E -Shell. It's an Emacs window

00:33:37.019 --> 00:33:40.740
that's the E -Shell. It's an Emacs shell written

00:33:40.740 --> 00:33:44.000
in Emacs Lisp. It's not Bash. It's not Phish,

00:33:44.059 --> 00:33:46.599
right? You would think it's running like a standard

00:33:46.599 --> 00:33:50.220
Unix -like shell. But it's its own unique shell.

00:33:50.319 --> 00:33:53.319
And the cool thing about Emacs, when you write

00:33:53.319 --> 00:33:56.960
these Emacs Lisp programs, is Emacs is cross

00:33:56.960 --> 00:33:59.720
-platform, so it works on Windows, Mac, and Linux.

00:33:59.960 --> 00:34:02.140
So you could actually use the E shell on Windows,

00:34:02.400 --> 00:34:05.779
where you might have a problem running the fish

00:34:05.779 --> 00:34:08.260
shell on Windows, for example, inside Emacs.

00:34:08.400 --> 00:34:12.780
Or man pages, right? I can actually run a man

00:34:12.780 --> 00:34:15.719
command here and get a man page for something.

00:34:15.840 --> 00:34:17.880
For example, maybe I want to read the man page

00:34:17.880 --> 00:34:22.500
for LS. But you would have to have the man database

00:34:22.500 --> 00:34:25.809
on a system, which for people running, A Unix

00:34:25.809 --> 00:34:28.289
-like operating system would be fine. But we

00:34:28.289 --> 00:34:30.889
have this really cool alternative in Emacs called

00:34:30.889 --> 00:34:34.429
Woman. So you get a woman page, and I could actually

00:34:34.429 --> 00:34:39.210
read this. Because this is not dependent on a

00:34:39.210 --> 00:34:42.269
man database, it ships its own kind of database.

00:34:42.429 --> 00:34:44.449
Everything's written in Emacs Lisp with woman

00:34:44.449 --> 00:34:47.369
pages. You would get woman pages on a Windows

00:34:47.369 --> 00:34:50.110
machine, too, if you used Emacs, where obviously

00:34:50.110 --> 00:34:52.090
you're not going to have the man pages available

00:34:52.090 --> 00:34:55.840
to you. It's just a different way to do things.

00:34:56.059 --> 00:35:00.579
Also, you know, with the way NeoVim or Vim or

00:35:00.579 --> 00:35:04.599
any terminal -based editor works is you open

00:35:04.599 --> 00:35:07.460
a terminal and then you do something with that

00:35:07.460 --> 00:35:10.539
terminal. I don't know. Open my bash RC here,

00:35:10.619 --> 00:35:12.599
and this is NeoVim. Even though I typed Vim,

00:35:12.659 --> 00:35:15.099
it's an alias for NeoVim. And, you know, you

00:35:15.099 --> 00:35:17.219
do what you do. Then you get back out to the

00:35:17.219 --> 00:35:23.059
shell. And the problem is you don't. Anything

00:35:23.059 --> 00:35:25.260
I do in the shell, like I run some commands in

00:35:25.260 --> 00:35:28.760
the shell or whatever, inside Vim or NeoVim,

00:35:28.820 --> 00:35:31.320
you have buffers. But those buffers are for when

00:35:31.320 --> 00:35:34.960
you're inside NeoVim. Well, when I get back out

00:35:34.960 --> 00:35:37.159
to the shell and go back into NeoVim, this LS

00:35:37.159 --> 00:35:39.639
command or whatever it is, it's not part of the

00:35:39.639 --> 00:35:42.940
buffers, right? But in Emacs, you start by launching

00:35:42.940 --> 00:35:45.780
Emacs, and you literally do everything from that

00:35:45.780 --> 00:35:48.739
point inside Emacs, and everything you do is

00:35:48.739 --> 00:35:51.239
an Emacs buffer. It doesn't matter what I do.

00:35:51.869 --> 00:35:55.250
I open a terminal. I've run HTOP inside that

00:35:55.250 --> 00:35:58.510
terminal inside Emacs. I do the web browser.

00:35:58.690 --> 00:36:03.050
I do the maggot get client, whatever it is. And,

00:36:03.130 --> 00:36:05.130
you know, I'll have 100 buffers open at some

00:36:05.130 --> 00:36:07.309
point, maybe 200, you know, if I never close

00:36:07.309 --> 00:36:09.630
any of them, which many people that use Emacs

00:36:09.630 --> 00:36:12.590
typically don't really like ever kill their buffers.

00:36:12.630 --> 00:36:14.630
So you'll have hundreds of them open. So you

00:36:14.630 --> 00:36:19.219
can quickly switch between them. So it's a different

00:36:19.219 --> 00:36:22.579
kind of workflow that confuses people when they

00:36:22.579 --> 00:36:25.579
switch, especially from Vim to Emacs, because

00:36:25.579 --> 00:36:28.000
they're so used to opening that terminal for

00:36:28.000 --> 00:36:30.360
everything. And then it confuses them because

00:36:30.360 --> 00:36:32.440
they don't really need a terminal for Emacs,

00:36:32.559 --> 00:36:35.639
but they need terminal for other things. And

00:36:35.639 --> 00:36:37.719
while in Emacs, you have the terminal inside

00:36:37.719 --> 00:36:41.820
Emacs, where in Vim, Vim runs inside the terminal.

00:36:41.860 --> 00:36:43.719
So it's like everything's kind of turned on its

00:36:43.719 --> 00:36:46.019
head and it really confuses people's brain when

00:36:46.019 --> 00:36:49.909
they switch. Yeah, definitely. Awesome. Thanks,

00:36:49.949 --> 00:36:54.849
DT. Now, let's jump to Niobe. So we go one -on

00:36:54.849 --> 00:36:58.929
-one. DJ. Sure. That sounds good. All right.

00:37:00.130 --> 00:37:02.860
I mean, Greg showed like a lot of... Good stuff

00:37:02.860 --> 00:37:05.000
throughout NeoVim. Obviously, it's got all the

00:37:05.000 --> 00:37:07.360
stuff you expect these days, like LSP and TreeSitter

00:37:07.360 --> 00:37:10.360
and stuff like that. We do actually have terminal

00:37:10.360 --> 00:37:13.679
inside of NeoVim here, too. So we can run terminal

00:37:13.679 --> 00:37:17.039
inside NeoVim, and this is just a regular NeoVim

00:37:17.039 --> 00:37:22.219
buffer. So if I wanted to block select or something,

00:37:22.360 --> 00:37:24.420
I can still do that. So that's nice. How do you

00:37:24.420 --> 00:37:28.059
do that? What? How do you do that? You just run

00:37:28.059 --> 00:37:32.530
terminal. Oh, okay. We put the name of our company

00:37:32.530 --> 00:37:38.530
in there. No, I'm just kidding. And you can select

00:37:38.530 --> 00:37:40.989
text like in a NeoVim buffer, right? Yeah, so

00:37:40.989 --> 00:37:44.050
it has terminal mode where you type stuff. I'm

00:37:44.050 --> 00:37:46.929
just typing stuff. But then when I escape out,

00:37:47.010 --> 00:37:50.170
now I'm in normal mode again. So I can navigate

00:37:50.170 --> 00:37:53.309
around just like I would modally, generally speaking.

00:37:53.710 --> 00:37:58.079
These are just tabs inside of one NeoVim. instance.

00:37:58.300 --> 00:38:01.679
That's actually how I do pretty much all of my

00:38:01.679 --> 00:38:05.800
dev stuff. I don't have anything against Tmux

00:38:05.800 --> 00:38:07.300
or something. I know there's some people that

00:38:07.300 --> 00:38:11.860
have vendettas against multiplexers and stuff,

00:38:12.079 --> 00:38:16.619
but I just never needed it. When I started writing

00:38:16.619 --> 00:38:19.119
code, I started basically with NeoVim when it

00:38:19.119 --> 00:38:20.440
was first coming out, and I was like, this is

00:38:20.440 --> 00:38:22.400
really cool. It blew my mind. You could write

00:38:22.400 --> 00:38:25.320
code and change what your editor was doing, and

00:38:25.320 --> 00:38:27.989
I was scared of the parentheses in Lisp. oh that's

00:38:27.989 --> 00:38:30.050
an overrated concern guys you don't need to be

00:38:30.050 --> 00:38:31.329
worried about it's the same number of parentheses

00:38:31.329 --> 00:38:35.030
okay so think about it okay it's the same number

00:38:35.030 --> 00:38:37.030
so that was not a good reason not to do it but

00:38:37.030 --> 00:38:39.650
um but yeah so i just never really got started

00:38:39.650 --> 00:38:43.469
on tmux and so i just started using like the

00:38:43.469 --> 00:38:45.230
terminal inside of neovim so that's how i've

00:38:45.230 --> 00:38:46.889
pretty much always done it but it is kind of

00:38:46.889 --> 00:38:49.050
like it's backwards for how a lot of people use

00:38:50.379 --> 00:38:52.500
use NeoVim. But I like that I can script it.

00:38:52.579 --> 00:38:54.579
I can send stuff if I need to to the terminal

00:38:54.579 --> 00:38:55.920
and do all the other stuff, which I'm sure a

00:38:55.920 --> 00:39:00.059
bunch of Emacsers also like, that you can, oh,

00:39:00.099 --> 00:39:01.840
I'm going to highlight this and send it over

00:39:01.840 --> 00:39:03.460
to this, or I'm going to pipe that command back

00:39:03.460 --> 00:39:07.139
into an output or whatever. I think all those

00:39:07.139 --> 00:39:10.280
are fun. Yeah, go ahead. Just a question. Now,

00:39:10.380 --> 00:39:13.659
you mentioned Tmux, right? But the reason I use

00:39:13.659 --> 00:39:16.260
Tmux is Prime, because I watched this video.

00:39:16.760 --> 00:39:19.860
How he was using TMAX, I didn't even know how

00:39:19.860 --> 00:39:22.960
to use TMAX, only in remote servers. But the

00:39:22.960 --> 00:39:25.800
way he uses it to switch sessions, right? With

00:39:25.800 --> 00:39:28.139
that shortcut, I just jumped to the sessions.

00:39:28.400 --> 00:39:31.139
How do you navigate between different projects?

00:39:31.920 --> 00:39:35.780
I've got nine desktops right here. I'll just

00:39:35.780 --> 00:39:38.519
have a different, I just have them stay. This

00:39:38.519 --> 00:39:40.639
is my desktop, I leave it on forever. So like,

00:39:40.800 --> 00:39:42.840
if I'm working on something, I just leave it

00:39:42.840 --> 00:39:44.440
on whatever number it is. I'll leave it on number

00:39:44.440 --> 00:39:47.150
four. but i got a different project on on number

00:39:47.150 --> 00:39:49.070
four just hanging out there waiting for me to

00:39:49.070 --> 00:39:51.869
come back to it another terminal instance yeah

00:39:51.869 --> 00:39:53.650
yeah i just opened up another like i'll just

00:39:53.650 --> 00:39:55.329
you know if i was like oh i want to go work on

00:39:55.329 --> 00:39:57.349
another project i'll just open a new ghosty shout

00:39:57.349 --> 00:40:00.349
out ghosty right i i you know maybe i go and

00:40:00.349 --> 00:40:02.489
i open this up and now i'm now i'm editing my

00:40:02.489 --> 00:40:05.789
elixir project right so like now now whoops now

00:40:05.789 --> 00:40:07.989
i'm here on like router so i'm just doing this

00:40:08.380 --> 00:40:11.099
yeah we can do that that's fine right and then

00:40:11.099 --> 00:40:13.059
uh like then i'm done with that one i'll just

00:40:13.059 --> 00:40:14.820
go back to here so i just switched i switched

00:40:14.820 --> 00:40:18.059
desktops okay and do you keep track of okay i

00:40:18.059 --> 00:40:21.780
keep this project always in desktop one no because

00:40:21.780 --> 00:40:23.739
i don't switch projects like every two minutes

00:40:23.739 --> 00:40:26.179
so it doesn't bother me like i work on a project

00:40:26.179 --> 00:40:28.659
mostly for like a day or a few hours right so

00:40:28.659 --> 00:40:31.139
it's like i mean i usually can kind of remember

00:40:31.139 --> 00:40:32.960
because it's like not i don't have that many

00:40:32.960 --> 00:40:35.659
projects happening at once but yeah and then

00:40:35.659 --> 00:40:37.519
i also like that because if i want to open like

00:40:37.900 --> 00:40:40.280
the browser for this one and i have you know

00:40:40.280 --> 00:40:43.320
of course 37 tabs as software developers tend

00:40:43.320 --> 00:40:46.320
to do right like then i they're all grouped with

00:40:46.320 --> 00:40:50.099
the same neovim like session right so yeah so

00:40:50.099 --> 00:40:52.199
it's like that's so that's for me that's kind

00:40:52.199 --> 00:40:54.380
of the workflow that i do for those and then

00:40:54.380 --> 00:40:57.460
like i said so i do all i like you know i open

00:40:57.460 --> 00:40:59.699
up my terminal inside of here if i want to do

00:40:59.699 --> 00:41:02.059
like random git commands or i want to check something

00:41:02.059 --> 00:41:03.940
or i want to grep or whatever i'll just do that

00:41:03.940 --> 00:41:07.679
all all here you know what i mean i can i need

00:41:07.679 --> 00:41:09.539
to do something with it i can grab them and paste

00:41:09.539 --> 00:41:13.699
it or whatever so so we we do we do have that

00:41:13.699 --> 00:41:15.800
going on so i don't know if any maxers out there

00:41:15.800 --> 00:41:18.000
didn't know that you know we're giving a shot

00:41:18.000 --> 00:41:20.119
so but the the thing that i wanted to show that's

00:41:20.119 --> 00:41:22.219
kind of funny um i mean we've got all the fun

00:41:22.219 --> 00:41:26.119
stuff i i know that um i think i forgot which

00:41:26.119 --> 00:41:32.260
is it just theme is it oh it's I copied Ivy.

00:41:32.539 --> 00:41:35.559
Here you go. If you're missing Ivy, I wrote Telescope

00:41:35.559 --> 00:41:37.300
a long time ago. Other people have been working

00:41:37.300 --> 00:41:38.880
on it. I haven't done very much with it in a

00:41:38.880 --> 00:41:41.539
long time. For me, it's finished software. I

00:41:41.539 --> 00:41:45.119
haven't changed it in forever. I stole some Ivy

00:41:45.119 --> 00:41:48.480
ideas, too, so if you like that. Ivy comes from

00:41:48.480 --> 00:41:51.860
Emacs? Emacs, yeah. It's a completion framework.

00:41:52.670 --> 00:41:54.750
Yeah, so Telescope has ways of doing different

00:41:54.750 --> 00:41:57.170
themes. Like, this is the same fuzzy finder,

00:41:57.190 --> 00:41:59.269
but it's just different themes of, like, ways

00:41:59.269 --> 00:42:01.670
of presenting it. These are NeoVim, like, real

00:42:01.670 --> 00:42:03.929
NeoVim buffers. This is all inside of NeoVim,

00:42:03.949 --> 00:42:05.690
right? Like, to get proper highlighting. And

00:42:05.690 --> 00:42:07.389
you can... I'm scrolling with my mouse wheel

00:42:07.389 --> 00:42:10.710
right now, in case that's cool. Like, all that

00:42:10.710 --> 00:42:13.650
good stuff, right? And you can do those. And

00:42:13.650 --> 00:42:16.130
then it has it for, like, everything. If I, you

00:42:16.130 --> 00:42:18.409
know, call a function that doesn't exist, we

00:42:18.409 --> 00:42:21.630
could do, like, Telescope diagnostics, and it

00:42:21.630 --> 00:42:23.440
will... You'll find that you can search for all

00:42:23.440 --> 00:42:25.019
of the things that you have in your project and

00:42:25.019 --> 00:42:26.780
jump between them and do all that good stuff,

00:42:26.840 --> 00:42:30.619
too. So it's a generic Fuzzy Finder like experience.

00:42:30.780 --> 00:42:32.900
Right. You can pipe anything into it and people

00:42:32.900 --> 00:42:34.599
do that. But the thing that I kind of wanted

00:42:34.599 --> 00:42:37.599
to show just as like a fun, a fun like thing

00:42:37.599 --> 00:42:40.579
of I feel like this is something I'm waiting

00:42:40.579 --> 00:42:42.280
after I do this. I know someone's going to make

00:42:42.280 --> 00:42:44.440
this package in Emacs. OK, so I'm giving away

00:42:44.440 --> 00:42:47.440
competitive advantage here. OK, this is this

00:42:47.440 --> 00:42:53.349
is new tech. I can't decide if this project is

00:42:53.349 --> 00:42:55.889
actually a joke or not. It's just kind of a funny

00:42:55.889 --> 00:42:57.789
idea that I had a little bit ago, which is like,

00:42:57.809 --> 00:42:59.789
I have a dynamic environment, right? I can like

00:42:59.789 --> 00:43:03.070
execute Lua files. Like LLMs can produce code.

00:43:03.809 --> 00:43:06.030
We can save the code when they're done. So what

00:43:06.030 --> 00:43:07.690
if we did something where we basically make like

00:43:07.690 --> 00:43:10.650
a Lua module? In this case, I have this Lua module.

00:43:10.809 --> 00:43:13.690
And anytime I call it with like the name of a

00:43:13.690 --> 00:43:18.050
function that like exists already. So I have

00:43:18.050 --> 00:43:21.130
examples and I have add numbers here, right?

00:43:21.849 --> 00:43:23.829
and it has a bunch of random stuff in here, not

00:43:23.829 --> 00:43:26.230
too important what's going on, then it will just

00:43:26.230 --> 00:43:29.650
call this function. So if I call, if I execute

00:43:29.650 --> 00:43:32.190
this file here, oh, that's, sorry, that's for

00:43:32.190 --> 00:43:34.389
later. I got to comment that part out. That was

00:43:34.389 --> 00:43:37.849
cheating. We'll come back to that. If we print

00:43:37.849 --> 00:43:40.349
calling adding these numbers, right, it'll just

00:43:40.349 --> 00:43:42.550
print 15. Like, no surprise. That's because there's

00:43:42.550 --> 00:43:44.110
real code there. We don't have to, we're not

00:43:44.110 --> 00:43:48.880
asking any LLMs what 5 plus 10 is. We asked it

00:43:48.880 --> 00:43:51.000
to write code that would take in these arguments,

00:43:51.179 --> 00:43:55.400
right? And so if I go to my Lua code here and

00:43:55.400 --> 00:43:59.159
I delete add numbers like this, I think it's

00:43:59.159 --> 00:44:00.619
going to say, oh, I'm going to generate a new

00:44:00.619 --> 00:44:02.780
function. It's calling to an LLM. It just asked

00:44:02.780 --> 00:44:06.079
Anthropic to write a new file. And now it saved

00:44:06.079 --> 00:44:08.300
it. And now it's there. It keeps the history

00:44:08.300 --> 00:44:10.119
because what you can also do is you could say

00:44:10.119 --> 00:44:12.519
something like this where you say, hey, I want

00:44:12.519 --> 00:44:15.340
to improve this example of add numbers. It should

00:44:15.340 --> 00:44:20.019
optionally include like a middle. Which I think

00:44:20.019 --> 00:44:21.179
this still works. I actually don't remember.

00:44:21.360 --> 00:44:24.219
I didn't check this. I was on a plane, okay?

00:44:24.480 --> 00:44:26.980
Okay, that part didn't work. The improve part

00:44:26.980 --> 00:44:28.199
didn't work. I don't know. I'll have to go back

00:44:28.199 --> 00:44:30.119
and check that part later. But there is a way

00:44:30.119 --> 00:44:33.619
to iterate on the LLM's answers. So if it does

00:44:33.619 --> 00:44:35.820
something you don't want it to do, then you can

00:44:35.820 --> 00:44:37.619
ask it again. So if we do something that said,

00:44:37.679 --> 00:44:43.719
like, X, make a cool floating window. and then

00:44:43.719 --> 00:44:46.840
i pass the things like uh yeah that's good title

00:44:46.840 --> 00:44:49.380
hello world 2 file type yeah sure why not we'll

00:44:49.380 --> 00:44:51.800
do this it says i don't have this function right

00:44:51.800 --> 00:44:54.679
now it's going to ask claude give me give me

00:44:54.679 --> 00:44:56.780
that function and it's going to generate a bunch

00:44:56.780 --> 00:45:00.820
of lua code And then, oh, please. No, it didn't

00:45:00.820 --> 00:45:02.380
work. Oh, it did work. It did, it did, it did.

00:45:02.380 --> 00:45:04.039
I forgot to press enter. There you go. And it

00:45:04.039 --> 00:45:06.260
changed the background color to green, right?

00:45:06.320 --> 00:45:08.920
So it changed everything and it wrote the code

00:45:08.920 --> 00:45:12.300
for me. So I have the most dynamic editor of

00:45:12.300 --> 00:45:14.699
all time. I can communicate to it in English

00:45:14.699 --> 00:45:17.460
and it will make the functions for me. And it

00:45:17.460 --> 00:45:20.219
will do like insane stuff. I asked it to do one

00:45:20.219 --> 00:45:24.659
where it said, generate a dad joke in place in

00:45:24.659 --> 00:45:28.559
a floating window. And it, it actually goes uh

00:45:28.559 --> 00:45:30.820
whoops i hope i got yeah here you go what did

00:45:30.820 --> 00:45:32.820
the drummer name her twin daughters and a one

00:45:32.820 --> 00:45:39.579
and a two great joke it wrote a curl request

00:45:39.579 --> 00:45:43.619
to an actual dad joke api pipes it in and gets

00:45:43.619 --> 00:45:45.500
it back so that was from the llm so i said i

00:45:45.500 --> 00:45:47.360
wanted a dad joke in a floating window and it

00:45:47.360 --> 00:45:52.179
did that um so anyways that was the That was

00:45:52.179 --> 00:45:54.820
just sort of the fun thing that I wanted to show.

00:45:55.119 --> 00:45:58.719
I think it's kind of fun thinking about the editor

00:45:58.719 --> 00:46:02.760
as this really dynamic experience and being able

00:46:02.760 --> 00:46:07.260
to do very goofy stuff like this where it's a

00:46:07.260 --> 00:46:09.480
solved problem. Someone's done this already.

00:46:09.800 --> 00:46:11.780
Someone's written code to make a pop -up window.

00:46:12.800 --> 00:46:16.059
It's been done. Even if you can't remember exactly

00:46:16.059 --> 00:46:18.460
which things it is, it's been done. So just ask

00:46:18.460 --> 00:46:20.039
the LLM. They'll just put it in there. You can

00:46:20.039 --> 00:46:21.619
check it if you like it. You can edit it. You

00:46:21.619 --> 00:46:23.800
can do whatever you want. And then you can iterate

00:46:23.800 --> 00:46:26.260
on it. So there you go. So that's my NeoVim demo

00:46:26.260 --> 00:46:30.900
for you. Awesome. How did you do the autocomplete

00:46:30.900 --> 00:46:34.699
of stuff there? Was that Copilot? That's SuperMaven.

00:46:34.840 --> 00:46:37.079
I mean, it's like an alternative to that, yeah.

00:46:37.380 --> 00:46:40.369
Is it good? SuperMaven guys are cool, yeah. yeah

00:46:40.369 --> 00:46:43.230
i was gonna ask tj was that dwm for your window

00:46:43.230 --> 00:46:46.349
manager i'm using awesome wm awesome wm okay

00:46:46.349 --> 00:46:49.809
yeah i i literally like i only picked it because

00:46:49.809 --> 00:46:51.489
like well i already know lewis so that's fine

00:46:51.489 --> 00:46:55.170
makes sense yeah i don't have a lot going on

00:46:55.170 --> 00:46:59.050
with it um but yeah the only things that i've

00:46:59.050 --> 00:47:01.690
done that are kind of like some goofy stuff is

00:47:01.690 --> 00:47:04.530
like write random things mostly for stream that

00:47:04.530 --> 00:47:07.170
are like kind of hyper specific to like load

00:47:07.170 --> 00:47:08.909
these three things put this here make it in a

00:47:08.909 --> 00:47:10.969
floating window put it floating on top i press

00:47:10.969 --> 00:47:13.010
it again it makes it disappear you know like

00:47:13.010 --> 00:47:15.289
that kind of stuff um otherwise i'd probably

00:47:15.289 --> 00:47:19.769
be fine like with something much simpler uh like

00:47:19.769 --> 00:47:22.150
i was actually yeah why i was asking is like

00:47:22.150 --> 00:47:24.289
it's kind of surprised me if you were on dwm

00:47:24.289 --> 00:47:30.440
because Why not awesome? You'd probably like

00:47:30.440 --> 00:47:32.760
it a lot better. Yeah, it's nice. Awesome is

00:47:32.760 --> 00:47:35.880
a good experience. Am I the only macOS user here,

00:47:36.079 --> 00:47:40.500
Greg? What are you on? I'm using a Mac too. I

00:47:40.500 --> 00:47:44.440
do use Linux at work, but I just use GNOME. I

00:47:44.440 --> 00:47:47.980
don't do anything fancy there. Honestly, I think

00:47:47.980 --> 00:47:52.239
Neobim consumes all of my config tweaking budget.

00:47:53.530 --> 00:48:00.130
I have no desire to do any more beyond that anymore.

00:48:00.869 --> 00:48:06.889
What is that ball? Well, this is technology that

00:48:06.889 --> 00:48:08.849
you use if you're expecting that you might get

00:48:08.849 --> 00:48:10.710
a raid from the primogen. You have to have a

00:48:10.710 --> 00:48:14.510
yoga ball to bounce on. Is that his ball? I don't

00:48:14.510 --> 00:48:16.769
think it's the same one. If you're looking for

00:48:16.769 --> 00:48:18.969
something very funny about that, though, you

00:48:18.969 --> 00:48:21.519
can check out balls .yoga. That's a website.

00:48:21.679 --> 00:48:26.039
But is it real? Is it a real website? You can't

00:48:26.039 --> 00:48:28.280
actually buy them, although we may do that at

00:48:28.280 --> 00:48:31.360
some point. But we did it as kind of a joke as

00:48:31.360 --> 00:48:34.239
part of this advertisement thing for a hackathon.

00:48:34.480 --> 00:48:38.000
And we couldn't believe that balls .yoga was

00:48:38.000 --> 00:48:42.099
available to buy. So we bought balls .yoga and

00:48:42.099 --> 00:48:45.219
put a fake shop up with... Well, here, I can

00:48:45.219 --> 00:48:48.159
show it. The best part of the site is definitely

00:48:48.159 --> 00:48:53.980
the... All the yoga balls of Prime being sold

00:48:53.980 --> 00:49:01.380
out everywhere. In random situations. You would

00:49:01.380 --> 00:49:04.420
sell them. I think you would sell them. The main

00:49:04.420 --> 00:49:07.420
problem is fulfilling them. That's the difficulty.

00:49:07.480 --> 00:49:12.059
Physical products are very hard. NFTs, we need

00:49:12.059 --> 00:49:18.260
an NFT collection for Prime's yoga balls. Okay,

00:49:18.260 --> 00:49:22.820
awesome. the last emacs demo what do you got

00:49:22.820 --> 00:49:26.139
for us josh i guess the question would be better

00:49:26.139 --> 00:49:30.940
like how do i not use emacs i guess because i

00:49:30.940 --> 00:49:33.940
essentially use emacs for everything except for

00:49:33.940 --> 00:49:37.260
a web browser a video editor and if there's anything

00:49:37.260 --> 00:49:39.880
text related i'm like how can i do it in emacs

00:49:39.880 --> 00:49:44.380
now hold on so i talked to the kitty terminal

00:49:44.380 --> 00:49:49.539
creator kovid he has like a Browser in the terminal.

00:49:49.639 --> 00:49:53.340
He's working on a variable font size protocol

00:49:53.340 --> 00:49:59.920
for Kitty. So he's kind of recreating Emacs,

00:50:00.059 --> 00:50:03.519
but in the terminal. He does everything in the

00:50:03.519 --> 00:50:07.119
terminal. So it's kind of possible, you know.

00:50:07.179 --> 00:50:09.980
But yeah, go on. Sorry. He's calling you out

00:50:09.980 --> 00:50:12.179
right now, Josh. No, I mean. You're not hardcore

00:50:12.179 --> 00:50:15.159
enough. It is. Just a quick question. I can't

00:50:15.159 --> 00:50:17.710
actually hear Josh now. Oh. Can you hear me?

00:50:17.789 --> 00:50:20.030
I can hear him. Yeah, you guys can. I can't,

00:50:20.030 --> 00:50:22.110
but I can hear all of y 'all. Yeah, it's weird.

00:50:22.269 --> 00:50:26.030
I could hear him earlier. Oh, what if you refresh

00:50:26.030 --> 00:50:29.809
the page, DT? Yeah, I'll try that. And let us

00:50:29.809 --> 00:50:31.929
know. Let us know if it... Yeah, just let me

00:50:31.929 --> 00:50:36.289
know. The issue is the modern JavaScript web,

00:50:36.449 --> 00:50:40.050
right? So that's why I have to use like a Firefox

00:50:40.050 --> 00:50:43.349
or like a Chrome or something like that. Otherwise,

00:50:43.809 --> 00:50:51.010
I would use EWW like DT over there. If there's

00:50:51.010 --> 00:50:53.230
a text workflow that I experience, I'm like,

00:50:53.329 --> 00:50:57.769
how can I do this in Emacs? Let's see some. Show

00:50:57.769 --> 00:51:06.090
me. DT showed a literate config for his Emacs.

00:51:06.250 --> 00:51:10.489
This is mine. I have 2 ,000 lines. When I blow

00:51:10.489 --> 00:51:14.530
this whole thing up, There you go. 2 ,000 lines

00:51:14.530 --> 00:51:17.590
long for that's my config. The thing that I'm

00:51:17.590 --> 00:51:20.030
really working on recently is actually switching

00:51:20.030 --> 00:51:26.070
to NixOS. So what I did was I literally configged

00:51:26.070 --> 00:51:29.769
in literally one file my entire infrastructure

00:51:29.769 --> 00:51:35.190
of all my computers, my servers, my desktop,

00:51:35.429 --> 00:51:38.650
my laptops, everything in one file. And then

00:51:38.650 --> 00:51:42.139
that is... blown out into all the other files

00:51:42.139 --> 00:51:46.039
here. But this is literally the infrastructure

00:51:46.039 --> 00:51:49.960
of my entire computing environment. So that was

00:51:49.960 --> 00:51:53.239
nice. What else did I do in Emacs? I wrote a

00:51:53.239 --> 00:51:58.239
book in Emacs. So I used org mode to write a

00:51:58.239 --> 00:52:02.400
book, export it to PDF via LaTeX. As you can

00:52:02.400 --> 00:52:06.000
see, the LaTeX header is up here. So that was

00:52:06.000 --> 00:52:11.659
my book. What else did I do here? You know what?

00:52:11.739 --> 00:52:17.820
I'm going to send Christian an email here. From

00:52:17.820 --> 00:52:25.619
Emacs. You should use Emacs. Hey, man. You should

00:52:25.619 --> 00:52:30.590
use Emacs. And I'm going to... go ahead sorry

00:52:30.590 --> 00:52:33.170
do you use it or it's just to show off right

00:52:33.170 --> 00:52:35.570
now and when no one's looking around you use

00:52:35.570 --> 00:52:38.590
a real email client that no no i actually i i

00:52:38.590 --> 00:52:41.090
literally for all my personal email i use this

00:52:41.090 --> 00:52:46.070
as my my email client so this is mu4e i uh i

00:52:46.070 --> 00:52:48.889
love it the uh the thing i'll do here too christian

00:52:48.889 --> 00:52:52.389
is i'm going to use mx spook so it's going to

00:52:52.389 --> 00:52:57.940
attach a bunch of uh nsa alerting uh words to

00:52:57.940 --> 00:53:01.039
our to my email so when and this isn't this is

00:53:01.039 --> 00:53:04.179
a native built -in function of emacs in that

00:53:04.179 --> 00:53:05.940
uh so when i send this email to you it's going

00:53:05.940 --> 00:53:08.440
to alert the nsa of all these different words

00:53:08.440 --> 00:53:12.329
and uh it's gonna Mark our conversations for

00:53:12.329 --> 00:53:14.170
future reference. So I'm just going to send that

00:53:14.170 --> 00:53:16.610
to you right now. Then they can store it for

00:53:16.610 --> 00:53:18.690
you. That's nice. That's convenient. You can

00:53:18.690 --> 00:53:20.750
just come back for it later. And I stay as email

00:53:20.750 --> 00:53:24.550
backup. Oh, guys, I lost my conversation with

00:53:24.550 --> 00:53:26.510
Link. Can you guys hit me back up with that?

00:53:26.630 --> 00:53:29.969
I do not remember what we were typing. So what

00:53:29.969 --> 00:53:32.989
else do I do in Emacs? I mean, I play my music

00:53:32.989 --> 00:53:35.610
in Emacs. So I was listening to some Aerosmith.

00:53:36.110 --> 00:53:38.869
So I got some on Ems. I'm listening to music

00:53:38.869 --> 00:53:42.670
in Emacs here. oh what else i don't know i i

00:53:42.670 --> 00:53:45.369
literally i program in emacs so here's my go

00:53:45.369 --> 00:53:50.130
api that i was working on earlier today uh back

00:53:50.130 --> 00:53:52.110
end front end whatever you can even do database

00:53:52.110 --> 00:53:55.230
client inside emacs i actually use um rest client

00:53:55.230 --> 00:53:58.170
these are not these are not live secrets so don't

00:53:58.170 --> 00:54:00.889
worry about it but uh i can literally send rest

00:54:00.889 --> 00:54:06.889
requests using rest sorry rest client mode so

00:54:06.889 --> 00:54:09.369
if i want to send a request when I'm testing

00:54:09.369 --> 00:54:13.349
an API or something like that. I just use Emacs.

00:54:13.449 --> 00:54:16.550
I don't need Postman or some proprietary garbage

00:54:16.550 --> 00:54:19.550
like that. There's a plug -in. But hey, Postman

00:54:19.550 --> 00:54:21.610
had Ryan Reynolds come to their conference, dude.

00:54:21.690 --> 00:54:24.909
I mean, they're pretty cool, okay? I'm not cool,

00:54:25.050 --> 00:54:28.809
so I use Emacs. Yeah, there's coolal at that

00:54:28.809 --> 00:54:31.630
end of him, as YSOserious said in the comments.

00:54:31.989 --> 00:54:36.070
That allows you to do that as well. The Emacs

00:54:36.070 --> 00:54:38.750
email client, the MU4E, for those of you wondering,

00:54:38.949 --> 00:54:41.389
it is very nice. You would use it all the time.

00:54:41.530 --> 00:54:44.329
I don't use it, not because it's not good. It's

00:54:44.329 --> 00:54:47.130
just because when I'm in Emacs and I'm recording

00:54:47.130 --> 00:54:49.210
my desktop a lot in Emacs, people don't need

00:54:49.210 --> 00:54:53.590
all my personal emails or my addresses because

00:54:53.590 --> 00:54:57.329
then you get all the trolls. Amazon shipment

00:54:57.329 --> 00:55:03.000
sent to. I asked Christian if I could send him

00:55:03.000 --> 00:55:05.820
an email to that one. It's a publicly available

00:55:05.820 --> 00:55:11.139
email. Not as private. I've been docked already,

00:55:11.380 --> 00:55:18.139
so my address is not a problem. If there's something

00:55:18.139 --> 00:55:20.639
that I can't do in Emacs, I think of a way to

00:55:20.639 --> 00:55:23.900
build it in. I actually built a launcher inside

00:55:23.900 --> 00:55:26.320
Emacs that literally will launch programs, find

00:55:26.320 --> 00:55:29.360
files, whatever. um i actually i'm gonna probably

00:55:29.360 --> 00:55:32.159
package this out to melpa it'll be the first

00:55:32.159 --> 00:55:36.980
package i've ever built so uh i'm not a maintainer

00:55:36.980 --> 00:55:40.000
or anything of emacs but i'm gonna maybe put

00:55:40.000 --> 00:55:42.980
my hat in the ring of throwing out a a uh an

00:55:42.980 --> 00:55:46.460
emacs plug in there um i've done something similar

00:55:46.460 --> 00:55:49.599
with emacs making it a run launcher where it

00:55:49.599 --> 00:55:51.699
was very similar to rophy or dmenu it's just

00:55:51.699 --> 00:55:54.400
small window that was just the mini buffer that

00:55:54.400 --> 00:55:57.210
i could search the programs The only thing about

00:55:57.210 --> 00:56:00.289
Emacs is that it's single threaded. So this is,

00:56:00.349 --> 00:56:03.289
I will concede here. They're working on it though.

00:56:03.349 --> 00:56:06.570
They're working on it. I know. I can't wait till

00:56:06.570 --> 00:56:08.230
it's multi -threaded because my goodness, like

00:56:08.230 --> 00:56:12.150
asynchronous inside Emacs. But yeah, so if you

00:56:12.150 --> 00:56:16.570
have something hanging a thread, you're SOL.

00:56:17.289 --> 00:56:19.789
So that's the only issue that I have with it.

00:56:19.869 --> 00:56:21.969
It's really the only issue preventing it from

00:56:21.969 --> 00:56:24.309
being a window manager too is the fact that it's

00:56:24.309 --> 00:56:27.820
not. if it was multi -threaded then yeah yeah

00:56:27.820 --> 00:56:31.360
i just launched emacs and that would be it and

00:56:31.360 --> 00:56:35.699
what is the only reason zero what issues have

00:56:35.699 --> 00:56:38.619
you experienced because of the single threaded

00:56:38.619 --> 00:56:45.179
so if you're running like a big just a big project

00:56:45.179 --> 00:56:48.360
or something like that and it hangs uh or if

00:56:48.360 --> 00:56:50.420
you have a crash like for example if i'm using

00:56:50.420 --> 00:56:55.389
that as my launcher and i run a uh firefox window

00:56:55.389 --> 00:56:58.090
from it the firefox window crashes when emacs

00:56:58.090 --> 00:57:00.230
crashes so everything crashes the whole server

00:57:00.230 --> 00:57:03.389
exactly so it's all reliant on that instance

00:57:03.389 --> 00:57:07.929
of emacs um it's why exwm is it's something i've

00:57:07.929 --> 00:57:10.550
thought about running but at the same time the

00:57:10.550 --> 00:57:13.309
issue with it is that i don't want my window

00:57:13.309 --> 00:57:16.630
manager to be single threaded it's a problem

00:57:16.630 --> 00:57:19.590
because i tried ex exwm for a little while and

00:57:19.590 --> 00:57:21.630
like doing things like video editing or anything

00:57:21.630 --> 00:57:25.119
that's really kind of resource intensive as soon

00:57:25.119 --> 00:57:27.760
as that that crashes the whole window manager

00:57:27.760 --> 00:57:30.840
crashes and everything you had going on it's

00:57:30.840 --> 00:57:34.019
a it's a pain yeah it's not worth it yeah i so

00:57:34.019 --> 00:57:36.039
i'm i'm waiting for i don't know i know what's

00:57:36.039 --> 00:57:38.280
in the pipeline i know multi -threading is they've

00:57:38.280 --> 00:57:42.199
built in uh there's asynchronous functions and

00:57:42.199 --> 00:57:44.699
stuff that you can run and i do know that native

00:57:44.699 --> 00:57:49.260
compilation also sped up a lot of the the threading

00:57:49.260 --> 00:57:51.989
but i i know that they're It's coming down the

00:57:51.989 --> 00:57:55.510
pipeline by much smarter people than me. Do you

00:57:55.510 --> 00:58:00.630
do something outside Emacs, Josh? What does Emacs

00:58:00.630 --> 00:58:05.849
not allow you to do? Browse the web, edit video,

00:58:06.030 --> 00:58:09.630
edit photos. There is a video editor in Emacs.

00:58:09.690 --> 00:58:11.530
I actually did a search for it one day because

00:58:11.530 --> 00:58:13.550
somebody sent me a message. Hey, you know, there's

00:58:13.550 --> 00:58:15.989
a Emacs program, a video editor that's written

00:58:15.989 --> 00:58:18.429
in Emacs list. It's like, there's no way. I went

00:58:18.429 --> 00:58:21.900
and found it. And I installed it, and it's very,

00:58:22.000 --> 00:58:25.019
very, very basic. But you can actually do some

00:58:25.019 --> 00:58:27.820
really simple video editing in Emacs if you wanted

00:58:27.820 --> 00:58:30.559
to. You'd be insane, but you could do it. You

00:58:30.559 --> 00:58:34.539
could use FFmpeg. You could do everything in

00:58:34.539 --> 00:58:37.760
FFmpeg if you really, really wanted to. And,

00:58:37.780 --> 00:58:41.480
I mean, that would be something. I was really

00:58:41.480 --> 00:58:44.539
hoping you were going to say. Edit videos, edit

00:58:44.539 --> 00:58:46.639
music, edit text. Those are all the things that

00:58:46.639 --> 00:58:52.820
I don't do inside Emacs. It's essentially my

00:58:52.820 --> 00:58:56.840
computer. We do have good multimedia stuff, though.

00:58:56.900 --> 00:58:59.860
He mentioned the multimedia player. I'm assuming

00:58:59.860 --> 00:59:03.559
you were using EMMS for playing your audio. That's

00:59:03.559 --> 00:59:07.639
what I used to. Also, there's radio streaming

00:59:07.639 --> 00:59:10.920
plugins also for Emacs. You can do all your...

00:59:11.739 --> 00:59:15.679
audio music in it. And what do you guys think

00:59:15.679 --> 00:59:19.159
about the opposite tool? The guys that are on

00:59:19.159 --> 00:59:22.639
the Neovim side. Let's go with Greg. What do

00:59:22.639 --> 00:59:25.679
you think about Emacs? Greg, what's your experience?

00:59:25.739 --> 00:59:29.199
Have you used it? What are your thoughts? My

00:59:29.199 --> 00:59:31.079
thoughts on Emacs are, I think it's great. I

00:59:31.079 --> 00:59:32.280
think it's a great tool. Like everything Josh

00:59:32.280 --> 00:59:34.539
just showed, I'm like, I'm honestly impressed

00:59:34.539 --> 00:59:36.679
that I'm not sitting here sneering like, oh,

00:59:36.739 --> 00:59:39.039
what do we do? Like, no, I'm like, I think that's

00:59:39.039 --> 00:59:46.239
serious. It's so cool. I think treating Emacs

00:59:46.239 --> 00:59:48.440
as a platform that you can build on and having

00:59:48.440 --> 00:59:50.960
that scriptable environment, it's very much a

00:59:50.960 --> 00:59:54.800
live environment, is amazing. I have tried Emacs.

00:59:54.880 --> 01:00:00.539
So I started with them. Honestly, I don't even

01:00:00.539 --> 01:00:02.159
remember, honestly, how I first started them.

01:00:02.179 --> 01:00:04.920
It's so long ago now. But whenever that was,

01:00:05.079 --> 01:00:08.250
if I had stumbled on Emacs instead. it's very

01:00:08.250 --> 01:00:09.849
likely I could be on the other side of this conversation

01:00:09.849 --> 01:00:15.110
today. But I tried Emacs after having used Vim

01:00:15.110 --> 01:00:18.230
full -time for five or so years. And it was mostly

01:00:18.230 --> 01:00:21.969
out of curiosity. I just want to see what this

01:00:21.969 --> 01:00:26.269
tool is like. I hear so much about it. And I

01:00:26.269 --> 01:00:29.429
probably read some blog posts or something. And

01:00:29.429 --> 01:00:32.329
I spent a good amount of time reading through

01:00:32.329 --> 01:00:36.269
the info pages, the basic stuff. how to navigate

01:00:36.269 --> 01:00:40.389
with Emacs, kind of like, you know, just really

01:00:40.389 --> 01:00:43.389
spending time with it. I was never able to get

01:00:43.389 --> 01:00:46.610
it to stick. And I really did try it. I made

01:00:46.610 --> 01:00:49.150
multiple different attempts to really kind of

01:00:49.150 --> 01:00:53.489
get it to Emacs and be an Emacs person. I think

01:00:53.489 --> 01:00:57.130
for me, the difficulty was, so a lot of people,

01:00:57.190 --> 01:00:58.829
even in the event today, there's going to be

01:00:58.829 --> 01:01:01.050
some irony here. And that's what I'm like, pretty

01:01:01.050 --> 01:01:04.590
much going to address the irony. is people today

01:01:04.590 --> 01:01:06.909
have this fear of NeoVM that's extremely complicated.

01:01:07.929 --> 01:01:11.650
I think there's a reputation that NeoVM is really

01:01:11.650 --> 01:01:16.349
hard or you have to install one of these distros

01:01:16.349 --> 01:01:18.250
or something to get started with it because how

01:01:18.250 --> 01:01:20.670
do you can work functional and working? You have

01:01:20.670 --> 01:01:24.030
to install a thousand plugins. I do want to unequivocally

01:01:24.030 --> 01:01:26.670
say that is not true. And this is a sub -box

01:01:26.670 --> 01:01:29.989
of mine. You could install NeoVM totally basic,

01:01:30.130 --> 01:01:32.900
out of the box, and have... extremely useful

01:01:32.900 --> 01:01:38.980
editor with almost zero configuration. But that's

01:01:38.980 --> 01:01:40.659
not the point I'm going to make. The point is

01:01:40.659 --> 01:01:42.619
that people talk about how hard it is to get

01:01:42.619 --> 01:01:46.619
into Neon Man and whether they should crack their

01:01:46.619 --> 01:01:48.460
own config and take the time to learn it or just

01:01:48.460 --> 01:01:51.699
take an off -the -shelf distro. And I'm very

01:01:51.699 --> 01:01:54.320
much on the side of I know it's painful, but

01:01:54.320 --> 01:01:56.280
you should absolutely do it the hard way. Spend

01:01:56.280 --> 01:01:59.030
time with it. Start with nothing. And then only

01:01:59.030 --> 01:02:01.449
as you say, okay, I'm hitting a limitation, go

01:02:01.449 --> 01:02:04.710
out and add a plugin, add a key map or whatever,

01:02:04.809 --> 01:02:07.090
right? But take the default as far as you can

01:02:07.090 --> 01:02:10.449
first. I understand people are busy. People just

01:02:10.449 --> 01:02:12.429
want to get stuff done and they don't have time

01:02:12.429 --> 01:02:15.570
for that. But that's my advice. That's what I

01:02:15.570 --> 01:02:19.110
encourage users to do. Now, I think my difficulty

01:02:19.110 --> 01:02:22.769
with Emacs is I was not able to follow. My own

01:02:22.769 --> 01:02:25.690
advice with Emacs, right? Emacs, I think, is

01:02:25.690 --> 01:02:28.789
like Vim and NeoVim, where out of the box, it's

01:02:28.789 --> 01:02:31.030
an extremely capable editor, but it has quirks,

01:02:31.030 --> 01:02:33.070
right? It's old. It's been around for a long

01:02:33.070 --> 01:02:35.170
time, just like Vim has. It has all these kind

01:02:35.170 --> 01:02:37.710
of weird legacy design decisions that can't be

01:02:37.710 --> 01:02:42.389
changed now because it would cause spacebar heating

01:02:42.389 --> 01:02:46.190
for somebody, to quote the XKCD comic. So experienced

01:02:46.190 --> 01:02:49.409
users of both NeoVim and Vim and Emacs like...

01:02:49.579 --> 01:02:51.260
learn to live with this and it's not a problem

01:02:51.260 --> 01:02:53.719
for them. But for new people, they run into this.

01:02:54.019 --> 01:02:58.179
And so there are a lot of paper cuts, time to

01:02:58.179 --> 01:03:02.960
kind of do things from scratch. And I just could

01:03:02.960 --> 01:03:06.619
not... I would try to use Emacs basic and I'd

01:03:06.619 --> 01:03:08.239
be like, okay, I have to change this one setting.

01:03:08.340 --> 01:03:10.460
This is just not working for me. And then I'd

01:03:10.460 --> 01:03:11.340
be like, I have to change the other setting.

01:03:11.480 --> 01:03:12.960
And then before I know it, I'm spending all this

01:03:12.960 --> 01:03:16.500
time writing all these different files. And then

01:03:16.500 --> 01:03:19.039
I'm like... okay, now I do install plugins. How

01:03:19.039 --> 01:03:21.199
do I install plugins? And it gets overwhelming.

01:03:21.460 --> 01:03:22.840
And I'm like, okay, let me just try it. I'll

01:03:22.840 --> 01:03:25.739
just try it. So I try like doobie max. I thought

01:03:25.739 --> 01:03:27.119
it was great. I was like, this is really cool.

01:03:27.239 --> 01:03:28.960
But then I run into the same problem. And it's

01:03:28.960 --> 01:03:30.820
exactly why I don't advise people to do this

01:03:30.820 --> 01:03:33.320
for NeoVM is that when you are using someone

01:03:33.320 --> 01:03:35.139
else's config or using their design decisions

01:03:35.139 --> 01:03:37.099
or use it, we talked earlier about how these

01:03:37.099 --> 01:03:39.000
tools are so powerful because you craft them

01:03:39.000 --> 01:03:43.110
to fit like your hand like a glove, right? when

01:03:43.110 --> 01:03:44.869
you use these off -the -shelf distros, you're

01:03:44.869 --> 01:03:46.809
wearing someone else's glove, which is not necessarily

01:03:46.809 --> 01:03:49.250
bad. Like a lot of these popular distros are

01:03:49.250 --> 01:03:53.150
popular for a reason. But you end up having to

01:03:53.150 --> 01:03:56.230
learn the tool itself and also learn the distro

01:03:56.230 --> 01:03:58.309
and like the designs they chose. And anytime

01:03:58.309 --> 01:03:59.909
you run into something, it's like, is this a

01:03:59.909 --> 01:04:02.329
D -Max thing or is this a Doom D -Max thing,

01:04:02.369 --> 01:04:04.489
right? Is this a minimum thing or is this a lazy,

01:04:04.630 --> 01:04:09.170
you know, dot infinite thing? So that was kind

01:04:09.170 --> 01:04:10.690
of my experience with it. I did try multiple

01:04:10.690 --> 01:04:15.050
times. And I thought it was great. I could definitely

01:04:15.050 --> 01:04:16.510
see the potential. I was like, I really want

01:04:16.510 --> 01:04:18.489
to like this. I thought org mode was super cool.

01:04:18.710 --> 01:04:21.190
I literally sat down at one point and just watched

01:04:21.190 --> 01:04:23.090
a lecture on org mode. I was like, I want to

01:04:23.090 --> 01:04:25.070
understand why people won't shut up about this.

01:04:25.150 --> 01:04:28.409
Why is it so cool? And I see the appeal. And

01:04:28.409 --> 01:04:31.690
actually, I wrote a little BIM plugin that kind

01:04:31.690 --> 01:04:35.869
of... I mean, it's like the most basic part of

01:04:35.869 --> 01:04:38.250
org mode where you can do some really primitive,

01:04:38.389 --> 01:04:41.250
literate programming and markdown files. I felt

01:04:41.250 --> 01:04:43.429
like this is just a really cool ability to do

01:04:43.429 --> 01:04:45.750
something like this. So I 100 % see the appeal,

01:04:45.889 --> 01:04:50.469
but I think by the time I approached Emacs, I

01:04:50.469 --> 01:04:56.510
was already just so then killed that moving was

01:04:56.510 --> 01:04:58.650
going to be really difficult. But I definitely

01:04:58.650 --> 01:05:00.909
took a lot of inspiration from Emacs, as you

01:05:00.909 --> 01:05:06.530
saw with the list. I do think that NeoVim has

01:05:06.530 --> 01:05:08.829
kind of bridged the gap in a sense between...

01:05:09.130 --> 01:05:12.769
legacy Vim and Emacs, right? Emacs has always

01:05:12.769 --> 01:05:15.409
been extremely scriptable. It's a platform that

01:05:15.409 --> 01:05:17.690
you can control. And I think YoVim has really

01:05:17.690 --> 01:05:22.429
brought that paradigm to the Vim world a lot

01:05:22.429 --> 01:05:24.929
more. They seem to be converging. There does

01:05:24.929 --> 01:05:29.289
seem to be some convergence, for sure. Yeah,

01:05:29.349 --> 01:05:32.090
I guess to paraphrase, I have nothing but respect

01:05:32.090 --> 01:05:35.070
for Emacs users, right? I feel like in the world

01:05:35.070 --> 01:05:38.159
of VS... and Cursor and Windsor or whatever,

01:05:38.320 --> 01:05:40.159
right? Like we're like, we're like holding on

01:05:40.159 --> 01:05:43.119
to our, our 40 year old tools. Like you can take

01:05:43.119 --> 01:05:45.239
these out of my dead hands, right? So there's

01:05:45.239 --> 01:05:47.840
like a little bit of a camaraderie there. But

01:05:47.840 --> 01:05:50.619
I do think like NeoVim users and Emacs users,

01:05:50.800 --> 01:05:53.739
right? The reason they're so sometimes obnoxious

01:05:53.739 --> 01:05:55.420
about why they love their tools so much is because

01:05:55.420 --> 01:05:58.480
they have, they've experienced that, the power

01:05:58.480 --> 01:06:01.340
of customizability, right? And once you get a

01:06:01.340 --> 01:06:04.820
taste of that. Yeah. Yeah. You can't give that

01:06:04.820 --> 01:06:09.079
up, you know? Yeah, definitely. That's why, I

01:06:09.079 --> 01:06:11.300
don't know, there's only two editors, two real

01:06:11.300 --> 01:06:15.099
editors out there. There's a lot more out there.

01:06:15.340 --> 01:06:19.239
You always censor that word, right? Teach, I'll

01:06:19.239 --> 01:06:24.679
try to censor it as well. It's a family -friendly

01:06:24.679 --> 01:06:26.800
stream, Link. Why are you cursing on stream?

01:06:27.000 --> 01:06:31.219
Please, dude, come on. And let's go with one

01:06:31.219 --> 01:06:35.929
of the Emacs guys. wants to go dt what are your

01:06:35.929 --> 01:06:41.050
thoughts on the other tool neovim it's fine i

01:06:41.050 --> 01:06:46.269
mean i use it i mean it's it's fine uh where

01:06:46.269 --> 01:06:50.010
i will uh mention you know where they differ

01:06:50.010 --> 01:06:55.349
neovim has much better defaults than emacs one

01:06:55.349 --> 01:06:57.489
of the biggest complaints about emacs as far

01:06:57.489 --> 01:07:01.489
as growing a user base is it has horrible defaults

01:07:01.489 --> 01:07:05.199
out of the box because it is not configured in

01:07:05.199 --> 01:07:09.099
any sensible way you get this very ugly white

01:07:09.099 --> 01:07:13.539
window with black text it's really small it does

01:07:13.539 --> 01:07:18.079
have menu bars and you know a menu system but

01:07:18.079 --> 01:07:21.179
it obviously you have to deal with the emacs

01:07:21.179 --> 01:07:22.960
key bindings if you're not familiar with the

01:07:22.960 --> 01:07:26.260
emacs style key chords it is really challenging

01:07:26.260 --> 01:07:29.840
for a new user to jump into that thing so i feel

01:07:29.840 --> 01:07:33.110
like Vim and NeoVim are a little easier to get

01:07:33.110 --> 01:07:35.769
into, especially you've got the Vim Tutor to

01:07:35.769 --> 01:07:38.610
accompany you along the way. I feel like anybody

01:07:38.610 --> 01:07:42.769
can be on their way within a couple of hours

01:07:42.769 --> 01:07:46.409
with Vim to where they're reasonably comfortable

01:07:46.409 --> 01:07:50.170
opening a file, closing a file, making basic

01:07:50.170 --> 01:07:53.449
changes to a text file. It's not much of a problem

01:07:53.449 --> 01:07:57.820
where Emacs is a real investment. The downside

01:07:57.820 --> 01:08:00.659
to Emacs, where I think Em and NeoVim really

01:08:00.659 --> 01:08:05.679
shine. I also love the Vim key bindings. I cannot

01:08:05.679 --> 01:08:09.800
stand the Emacs key cords. And I've tried them

01:08:09.800 --> 01:08:11.760
when I first switched to Emacs. You know, I used

01:08:11.760 --> 01:08:13.800
it for like a month because I wanted to learn

01:08:13.800 --> 01:08:16.880
a lot of the standard Emacs key bindings. I still

01:08:16.880 --> 01:08:19.079
remember a lot of them from that experience,

01:08:19.260 --> 01:08:21.640
but it hurt my hands. Like I really did have

01:08:21.640 --> 01:08:25.119
some hand pain. No lie. It actually, like, that

01:08:25.119 --> 01:08:27.220
was the reason to change. Like, I'm going back

01:08:27.220 --> 01:08:31.039
to the Vim bindings, so I found evil mode, Doom

01:08:31.039 --> 01:08:33.859
Emacs, switched to it, which already had evil

01:08:33.859 --> 01:08:36.520
bindings already baked in, and that made a big

01:08:36.520 --> 01:08:40.560
difference because all of that Control -C, Control

01:08:40.560 --> 01:08:44.640
-S, Control -C, Control -X, that was so bad on

01:08:44.640 --> 01:08:48.340
that pinky, right? I couldn't do it. So that's

01:08:48.340 --> 01:08:51.659
the... The two areas where I will give Vim slash

01:08:51.659 --> 01:08:55.619
NeoVim a lot of credit and Emacs, you know, need

01:08:55.619 --> 01:08:58.899
some work in those departments. But other than

01:08:58.899 --> 01:09:02.319
that, I've got no real complaints. I think I

01:09:02.319 --> 01:09:05.920
use both. I could use I could easily just stop

01:09:05.920 --> 01:09:09.460
using Emacs one day and and live in Vim or NeoVim.

01:09:09.760 --> 01:09:13.960
The one problem. The one thing I would really

01:09:13.960 --> 01:09:17.279
miss is I've become so invested in org mode.

01:09:18.000 --> 01:09:20.960
And even though org mode has been around for

01:09:20.960 --> 01:09:25.560
more than 20 years now, it is still an Emacs

01:09:25.560 --> 01:09:28.939
thing, right? There's plug -ins for other editors,

01:09:28.979 --> 01:09:31.500
but just the way that thing was originally designed

01:09:31.500 --> 01:09:34.899
and built with all the various functions and

01:09:34.899 --> 01:09:37.800
generating tables and spreadsheets and things

01:09:37.800 --> 01:09:41.279
like that, really neat stuff. It's hard for other

01:09:41.279 --> 01:09:47.159
editors to adopt it and really have like 100%.

01:09:47.860 --> 01:09:49.760
compatibility with everything you can do in org

01:09:49.760 --> 01:09:52.760
mode that's the one thing where if you get into

01:09:52.760 --> 01:09:55.119
org mode you really are kind of locked into emacs

01:09:55.119 --> 01:09:59.319
do you do you literally program all of your configs

01:09:59.319 --> 01:10:02.779
and everything yes yeah because i think it's

01:10:02.779 --> 01:10:06.920
easier when i put it on gitlab it's a lot easier

01:10:06.920 --> 01:10:09.420
for folks to read that document as an org document

01:10:09.840 --> 01:10:12.600
Then, for example, well, I'm in Qtile for my

01:10:12.600 --> 01:10:14.699
window manager to read a Python file. I mean,

01:10:14.720 --> 01:10:16.939
they could read the Python code. But when I actually

01:10:16.939 --> 01:10:19.479
create a table of contents and an outline and

01:10:19.479 --> 01:10:21.659
blocks of code and then, you know, have comments

01:10:21.659 --> 01:10:23.859
for each block of code, it makes it so much easier

01:10:23.859 --> 01:10:26.859
for somebody, you know, for a noob that maybe

01:10:26.859 --> 01:10:29.520
doesn't know any Python. They would understand

01:10:29.520 --> 01:10:32.060
that a lot easier. You hopped out of the stream,

01:10:32.180 --> 01:10:36.760
but I showed I literally programmed my Nix. OS

01:10:36.760 --> 01:10:39.439
config. So essentially all of my infrastructure

01:10:39.439 --> 01:10:43.840
is literally one file. Yeah. Yeah. And I've done

01:10:43.840 --> 01:10:46.979
some of that before where I've had one literate

01:10:46.979 --> 01:10:50.760
config for multiple things. One area, a lot of

01:10:50.760 --> 01:10:54.439
people do that with is with websites where you

01:10:54.439 --> 01:10:57.279
write a file and you have literate, one literate

01:10:57.279 --> 01:11:00.039
config for all the HTML, all the CSS and all

01:11:00.039 --> 01:11:02.460
the JavaScript and one file. And it's just, just

01:11:02.460 --> 01:11:04.500
this gigantic file, but it's the whole website.

01:11:04.600 --> 01:11:08.859
Right. But yeah. uh i'm not much into web development

01:11:08.859 --> 01:11:12.279
these days but it becomes i do think there is

01:11:12.279 --> 01:11:14.539
a downside to putting too much into one config

01:11:14.539 --> 01:11:17.220
i think sometimes you do want to split some of

01:11:17.220 --> 01:11:23.399
that stuff up yeah i feel you okay okay and um

01:11:23.399 --> 01:11:27.199
what about you teach why your thoughts on emacs

01:11:27.199 --> 01:11:40.670
yeah i don't think about emacs I was... I was

01:11:40.670 --> 01:11:43.670
waiting a long time to do that one. I was waiting

01:11:43.670 --> 01:11:46.130
a long time for that one. That was almost as

01:11:46.130 --> 01:11:49.090
good as your dad joke. Thank you, thank you,

01:11:49.090 --> 01:11:53.170
thank you. Oh, man. No, my serious answer is

01:11:53.170 --> 01:11:56.890
I feel really similar to Greg. I think Neoman

01:11:56.890 --> 01:11:59.109
took a lot of inspiration from Emacs of just

01:11:59.109 --> 01:12:02.210
saying it's really possible to just do a bunch

01:12:02.210 --> 01:12:05.279
of things and have nice things. We can just have

01:12:05.279 --> 01:12:07.479
a terminal. Guys, people write terminals. We

01:12:07.479 --> 01:12:10.920
can put one in. We can put one in. That's fine.

01:12:11.479 --> 01:12:15.100
We don't need to be afraid of those things as

01:12:15.100 --> 01:12:19.220
long as you do it in a way where it doesn't basically

01:12:19.220 --> 01:12:21.859
start multiplying the weight of maintenance.

01:12:22.260 --> 01:12:24.539
Where, oh, we added this thing and this thing

01:12:24.539 --> 01:12:26.880
and now it's four times as much instead of twice

01:12:26.880 --> 01:12:32.319
as much. So you find a good... terminal library

01:12:32.319 --> 01:12:35.100
that you can embed inside of NeoVim that does

01:12:35.100 --> 01:12:36.920
most of the work for you, and then you can put

01:12:36.920 --> 01:12:38.899
one in and it's not that much work. Similarly

01:12:38.899 --> 01:12:42.920
for asynchronous events and an event loop and

01:12:42.920 --> 01:12:45.819
stuff, it's like, hey, Node solved this already

01:12:45.819 --> 01:12:50.079
with UV, and they have sick bindings. We can

01:12:50.079 --> 01:12:51.979
just put this inside of NeoVim and do the same

01:12:51.979 --> 01:12:56.560
thing, and it's really good. so like i think

01:12:56.560 --> 01:12:59.619
emacs inspired like a lot of stuff um for any

01:12:59.619 --> 01:13:01.300
of them and i think there's been a lot of like

01:13:01.300 --> 01:13:04.739
mutual uh sort of like pushing each each community

01:13:04.739 --> 01:13:07.100
forward like of like oh that was cool that they

01:13:07.100 --> 01:13:08.520
did this that was kind of like a twist on our

01:13:08.520 --> 01:13:10.060
thing like we'll do this and then kind of like

01:13:10.060 --> 01:13:12.979
a nice um you know camaraderie and of course

01:13:12.979 --> 01:13:17.670
you know i like i i've never like you know I'm

01:13:17.670 --> 01:13:20.569
31. I'm not, you know, I'm not ancient or anything.

01:13:20.670 --> 01:13:23.130
Like, I never really felt like any serious, like,

01:13:23.149 --> 01:13:26.489
NeoVim or, like, Vim and Emacs beef, like, my

01:13:26.489 --> 01:13:28.210
whole life. It always feels like, hey, we've

01:13:28.210 --> 01:13:29.810
got some, like, properly open source editors

01:13:29.810 --> 01:13:31.689
here and we're, like, fighting against the world,

01:13:31.750 --> 01:13:34.609
you know? So it's, like, I always feel like that's

01:13:34.609 --> 01:13:37.050
the joke, like, on my stream, why it's, like,

01:13:37.050 --> 01:13:40.510
when we go, yeah, VS, like, Microsoft lies about

01:13:40.510 --> 01:13:42.289
that being open source. Like, I don't have any

01:13:42.289 --> 01:13:44.310
problem with closed source editors, you know

01:13:44.310 --> 01:13:46.199
what I'm saying? Like... But, like, Microsoft

01:13:46.199 --> 01:13:50.020
is lying about, like, VS Code, right? You know

01:13:50.020 --> 01:13:51.720
what I'm saying? Like, they're saying it's open

01:13:51.720 --> 01:13:55.199
source, but then that's not true, and they're,

01:13:55.220 --> 01:13:56.640
like, putting all this other stuff, and they're

01:13:56.640 --> 01:13:59.020
releasing LSPs that can only run inside of Microsoft's

01:13:59.020 --> 01:14:01.300
things, and, like, all this, you know, the list

01:14:01.300 --> 01:14:04.479
goes on and on. Like, so I'm like, I don't care

01:14:04.479 --> 01:14:06.399
if you make a closed -source editor, but, like,

01:14:06.420 --> 01:14:08.659
don't lie to me about it. You know what I'm saying?

01:14:08.760 --> 01:14:11.640
So, yeah, so I think, like, Emacs and NeoVim

01:14:11.640 --> 01:14:14.560
are on the same team. Well, I don't know because

01:14:14.560 --> 01:14:19.020
when you say they're on the same team, it's probably

01:14:19.020 --> 01:14:23.069
the biggest. software war has been VI versus

01:14:23.069 --> 01:14:25.210
Emacs dating back to the late seventies. And

01:14:25.210 --> 01:14:28.149
that's been going on 50 years now. So I don't

01:14:28.149 --> 01:14:30.329
know. There's maybe a few people, you know, like

01:14:30.329 --> 01:14:32.630
how after world war II, they like found some

01:14:32.630 --> 01:14:35.569
guys. The neckbeards have almost died out. You're

01:14:35.569 --> 01:14:40.550
right. They're still sitting around programming

01:14:40.550 --> 01:14:45.029
and Pearl and all. I just don't run into, I don't

01:14:45.029 --> 01:14:47.449
run into them that often. Yeah. The ones left

01:14:47.449 --> 01:14:52.159
are like 70 already. So yeah. At least. I don't

01:14:52.159 --> 01:14:54.520
get online until after their bedtime. You know

01:14:54.520 --> 01:15:00.720
what I mean? And then I got to jump pretty soon,

01:15:00.779 --> 01:15:03.579
Link, just as a heads up. All right, Teach. No

01:15:03.579 --> 01:15:07.720
worries. When you need to go, just drop. What

01:15:07.720 --> 01:15:11.699
are your thoughts on the other tool, Josh? I

01:15:11.699 --> 01:15:14.649
mean, I use... People are going to hate me for

01:15:14.649 --> 01:15:16.909
this, but I use Vim inside Emacs, right? Like,

01:15:16.909 --> 01:15:21.170
I use Evilmode. I am an evil user, so I'm a bit

01:15:21.170 --> 01:15:24.989
of a traitor from day one. Now, with that being

01:15:24.989 --> 01:15:28.090
said, like, you can't run Emacs inside NeoVim,

01:15:28.109 --> 01:15:31.529
but you could run Vim inside of Emacs, so. We

01:15:31.529 --> 01:15:33.550
can, though, because I can run the terminal version.

01:15:33.609 --> 01:15:35.510
Yeah, if you can run, if you can emulate a terminal,

01:15:35.550 --> 01:15:38.510
you can type Emacs, the TTY version of Emacs.

01:15:39.069 --> 01:15:44.579
You can't get images. Well, no. Greg's done it.

01:15:46.340 --> 01:15:51.279
Actually, that's actually false today. Is my

01:15:51.279 --> 01:15:52.939
screen share still working? I have to show this

01:15:52.939 --> 01:15:56.319
off. The gauntlet has been thrown down. The gauntlet

01:15:56.319 --> 01:15:58.199
has been thrown down, so now I have to show this.

01:15:58.439 --> 01:16:04.020
So another member of the another NeoVim core

01:16:04.020 --> 01:16:08.210
team maintainer wrote this. Sean Dewar. whose

01:16:08.210 --> 01:16:09.649
name I've never actually said out loud before,

01:16:09.829 --> 01:16:13.090
so I hope I said it right. But he wrote Doom

01:16:13.090 --> 01:16:17.770
that runs inside Neodymium. So we're going to

01:16:17.770 --> 01:16:20.970
run real Doom inside of Neodymium, inside of

01:16:20.970 --> 01:16:24.590
my terminal. Running right now, I don't know

01:16:24.590 --> 01:16:28.189
if you guys can see it. I'm not seeing it come

01:16:28.189 --> 01:16:30.350
through on the screen share. Yeah, it's not coming

01:16:30.350 --> 01:16:32.369
through on the screen share. Did you share an

01:16:32.369 --> 01:16:36.329
application or the entire screen? Hold on. There

01:16:36.329 --> 01:16:42.079
you go. they are converging i like i will say

01:16:42.079 --> 01:16:46.859
emacs and neovim are converging on features and

01:16:46.859 --> 01:16:48.920
because i mean you see something cool over here

01:16:48.920 --> 01:16:51.520
somebody's gonna write it over here you see something

01:16:51.520 --> 01:16:53.159
cool over here somebody's gonna write it over

01:16:53.159 --> 01:16:55.800
here so even variable font size like in some

01:16:55.800 --> 01:16:59.260
neovim guis oh nice here we go there you go yeah

01:16:59.260 --> 01:17:03.840
so i don't actually know how to play doom uh

01:17:03.840 --> 01:17:07.859
but Yeah, this is using the Kitty graphics protocol

01:17:07.859 --> 01:17:11.619
that Kitty introduced. That's pretty big. And

01:17:11.619 --> 01:17:13.319
I'm using a terminal node that supports it. So

01:17:13.319 --> 01:17:17.859
this is displaying. I mean, it's pretty smooth

01:17:17.859 --> 01:17:21.220
too. Yeah. But I mean, this is obviously kind

01:17:21.220 --> 01:17:25.300
of a gimmick. So is Tetris and Emacs. Sean would

01:17:25.300 --> 01:17:27.300
totally admit that too. But we definitely have

01:17:27.300 --> 01:17:31.960
ambitions. You add image support so that you

01:17:31.960 --> 01:17:34.539
can view. Like a really cool thing to be able

01:17:34.539 --> 01:17:37.539
to do would be able to have markdown buffer and

01:17:37.539 --> 01:17:39.899
then in a split pane have the rendered version,

01:17:39.960 --> 01:17:42.739
right? Like you can do in VS Code or Emacs. There's

01:17:42.739 --> 01:17:45.060
no reason we can't do that in any of them. The

01:17:45.060 --> 01:17:46.600
terminal supports the kitted graphics protocol.

01:17:46.960 --> 01:17:49.039
And yeah, the variable font size thing is another

01:17:49.039 --> 01:17:51.920
thing that is still really new, but that we want

01:17:51.920 --> 01:17:56.939
to support as well for the same idea. So there's

01:17:56.939 --> 01:17:58.920
a lot of cool stuff happening. A lot of cool

01:17:58.920 --> 01:18:00.300
stuff that's already happened in the last couple

01:18:00.300 --> 01:18:02.659
of years with terminals. And that's going to

01:18:02.659 --> 01:18:07.680
keep happening too. Shout out to Henrik for Doom

01:18:07.680 --> 01:18:11.000
Emacs too, because honestly, Doom Emacs is the

01:18:11.000 --> 01:18:15.600
thing that gets people early access to Emacs.

01:18:15.800 --> 01:18:18.520
If I didn't have Doom Emacs, I don't think I

01:18:18.520 --> 01:18:22.000
would be using Emacs. It would be a much tougher

01:18:22.000 --> 01:18:26.279
barrier to entry without it. There's so many

01:18:26.279 --> 01:18:30.500
sane defaults that he put into that repository.

01:18:31.469 --> 01:18:34.449
that yeah it's insane and i mean he's done a

01:18:34.449 --> 01:18:37.609
ton of optimizations too like it's not just um

01:18:37.609 --> 01:18:40.329
it's not just like keybinds and stuff like he's

01:18:40.329 --> 01:18:44.630
he's literally made things faster so he's he's

01:18:44.630 --> 01:18:46.670
done a great job there too and he made it accessible

01:18:46.670 --> 01:18:51.449
to the vim user you know thinking thinking about

01:18:51.449 --> 01:18:55.310
coming over to emacs so yeah yeah tj you already

01:18:55.310 --> 01:18:57.750
have to drop so one last question for you yeah

01:18:57.750 --> 01:19:02.539
hit me um What would you recommend someone then?

01:19:02.739 --> 01:19:04.680
Someone just starting. Would you recommend them

01:19:04.680 --> 01:19:07.399
to go with any of them? They should try both.

01:19:07.819 --> 01:19:12.020
They should try both. Distro or no distro? So

01:19:12.020 --> 01:19:15.640
I would say if you don't have anyone that you're

01:19:15.640 --> 01:19:18.420
friends with that uses one or the other, I think

01:19:18.420 --> 01:19:21.659
testing a distro and just being like, oh, this

01:19:21.659 --> 01:19:25.060
has features that I like. That's like a good

01:19:25.060 --> 01:19:27.489
start. Then you know it's possible to do. like

01:19:27.489 --> 01:19:29.869
in the editor then maybe pair that back and try

01:19:29.869 --> 01:19:32.590
and build something either from like like i'm

01:19:32.590 --> 01:19:34.909
partial to like kickstart or something like this

01:19:34.909 --> 01:19:36.890
where it's like small and you can read it all

01:19:36.890 --> 01:19:39.989
and you can see um but you know pairing it back

01:19:39.989 --> 01:19:42.189
to something where you actually know what like

01:19:42.189 --> 01:19:45.270
every line in your config actually does and then

01:19:45.270 --> 01:19:47.369
maybe like you know later you could hop to a

01:19:47.369 --> 01:19:49.989
distro if you feel like it's a good value prop

01:19:49.989 --> 01:19:53.579
for you but it's like I do see a lot of people

01:19:53.579 --> 01:19:55.319
who have a lot of pain because they, like, never

01:19:55.319 --> 01:19:57.899
bothered to do 10 minutes of reading the docs.

01:19:58.739 --> 01:20:00.760
And they never figured out that, like, Vim has

01:20:00.760 --> 01:20:02.460
help. And you're like, dude, that's, like, the

01:20:02.460 --> 01:20:05.399
key feature. And ChatGPT does not fix your issue.

01:20:05.399 --> 01:20:07.279
ChatGPT is actually pretty good. People should

01:20:07.279 --> 01:20:09.399
be asking more questions to ChatGPT and, like,

01:20:09.399 --> 01:20:11.279
learning how to actually paste and read a whole

01:20:11.279 --> 01:20:13.399
error message and response instead of being like,

01:20:13.439 --> 01:20:16.920
it didn't solve it in five seconds. Like, I find

01:20:16.920 --> 01:20:18.899
it's very good at a lot of those problems because

01:20:18.899 --> 01:20:20.760
someone else has already had them. So, like...

01:20:21.840 --> 01:20:25.140
ChatGPD is just asking Stack Overflow where the

01:20:25.140 --> 01:20:27.220
question's already been answered. Yes, right.

01:20:30.220 --> 01:20:37.939
I'm more of not a huge distro fan. At least in

01:20:37.939 --> 01:20:40.079
the NeoVim world, I don't know. The Doom one

01:20:40.079 --> 01:20:42.460
I hear good things about, so maybe it's different

01:20:42.460 --> 01:20:46.560
over there. But it just seems to me to end up

01:20:46.560 --> 01:20:49.800
with you never figure out how to actually use

01:20:49.800 --> 01:20:52.619
it. and then something goes wrong, and then you're

01:20:52.619 --> 01:20:55.880
just mad. For me, I haven't even changed anything

01:20:55.880 --> 01:20:57.880
in my NeoVim config for probably six months.

01:20:58.159 --> 01:21:00.000
I don't even know if I've done a commit. If I

01:21:00.000 --> 01:21:03.039
have, it's literally less than 10 lines, probably.

01:21:03.560 --> 01:21:07.300
Literally nothing can break. I'm not even updating

01:21:07.300 --> 01:21:10.399
plugins most of the time, or NeoVim most of the

01:21:10.399 --> 01:21:13.020
time for that either. If I'm not interested in

01:21:13.020 --> 01:21:15.659
getting something, it can't break on me until

01:21:15.659 --> 01:21:19.060
I ask it to. But if you're like, oh, it just...

01:21:19.340 --> 01:21:21.020
Every time I open NeoVim and auto -updates, it

01:21:21.020 --> 01:21:22.939
pulls the latest NeoVim update and pulls the

01:21:22.939 --> 01:21:25.180
latest lazy thing. Possibly from the same day.

01:21:25.600 --> 01:21:27.000
Nobody's had time to sync those up together.

01:21:27.300 --> 01:21:29.279
You're touching a sore spot for me right now,

01:21:29.279 --> 01:21:31.819
TJ. I know I am. I know. I'm helping. I'm helping,

01:21:31.920 --> 01:21:34.119
Greg. I'm helping. I appreciate it. It grinds

01:21:34.119 --> 01:21:36.000
my gears. It grinds my gears and I see people

01:21:36.000 --> 01:21:37.899
complain like, oh, NeoVim's breaking all the

01:21:37.899 --> 01:21:40.279
time. I'm like, yeah, you're the one that's daily

01:21:40.279 --> 01:21:43.479
driving ahead as a master branch, computing your

01:21:43.479 --> 01:21:45.100
plugins multiple times a day and you have like

01:21:45.100 --> 01:21:46.979
16 different plugins. Your morning routine is

01:21:46.979 --> 01:21:50.569
like, I... get the latest neo vim without reading

01:21:50.569 --> 01:21:53.909
the changelog yeah and i get the latest version

01:21:53.909 --> 01:21:58.670
of my thousand plugins and then crazy since none

01:21:58.670 --> 01:22:01.689
of those are actually released they're all just

01:22:01.689 --> 01:22:04.970
from git they're not a version they don't work

01:22:04.970 --> 01:22:08.590
all the time together yes of course guys so like

01:22:08.590 --> 01:22:11.489
so yeah so i think you just end up and that's

01:22:11.489 --> 01:22:13.630
a scenario like a lot more often and you get

01:22:13.630 --> 01:22:15.449
this feeling of like it never works and you're

01:22:15.449 --> 01:22:18.239
like dude you don't have to update anything now

01:22:18.239 --> 01:22:22.079
it's okay how often do you update teach well

01:22:22.079 --> 01:22:25.319
it just depends like i mean like like lately

01:22:25.319 --> 01:22:27.640
because i since i haven't been i for me it's

01:22:27.640 --> 01:22:29.020
very different because when i was like actively

01:22:29.020 --> 01:22:31.239
doing a lot more neovim stuff it would be like

01:22:31.239 --> 01:22:33.399
all the time but that's because i was working

01:22:33.399 --> 01:22:35.720
on neovim all the time like with all my free

01:22:35.720 --> 01:22:39.680
time and now it's like rarely like once a month

01:22:39.680 --> 01:22:43.340
maybe i don't even do that for emacs and all

01:22:43.340 --> 01:22:46.420
my emacs programs i update Seriously, I might

01:22:46.420 --> 01:22:50.220
update it three or four times in a year. If it's

01:22:50.220 --> 01:22:52.720
working, why bother? The only time I update it

01:22:52.720 --> 01:22:56.659
is if I need to. If I don't need to, I don't

01:22:56.659 --> 01:23:03.159
touch it. Confirm Debian stable user. No. Thanks,

01:23:04.460 --> 01:23:07.779
everybody, for having me. Appreciate it. Thanks

01:23:07.779 --> 01:23:12.319
for being flexible. See you guys. All right.

01:23:15.920 --> 01:23:21.060
What would you recommend, DT, to someone joining?

01:23:22.560 --> 01:23:25.100
Like someone new, someone out there that is using

01:23:25.100 --> 01:23:27.399
VS Code as their daily driver. And they're like,

01:23:27.520 --> 01:23:29.859
oh, I want to try one of these two. What would

01:23:29.859 --> 01:23:32.579
you say to them? Well, I have some strong opinions

01:23:32.579 --> 01:23:35.420
and I'm going to disagree a little bit with TJ.

01:23:35.560 --> 01:23:39.859
I really think they should learn Vim and learn

01:23:39.859 --> 01:23:42.340
the Vim bindings. Like the very first thing they

01:23:42.340 --> 01:23:46.439
have to learn. I'm coming at this from a Linux

01:23:46.439 --> 01:23:49.180
perspective, too. You need to know how to use

01:23:49.180 --> 01:23:51.560
Vim. Whether you eventually learn anything about

01:23:51.560 --> 01:23:54.420
Emacs anyway, you got to learn Vim. So that's

01:23:54.420 --> 01:23:57.399
the number one thing they should do. Once they

01:23:57.399 --> 01:24:00.340
know how Vim works, as far as the key bindings

01:24:00.340 --> 01:24:02.439
especially, then they can worry about moving

01:24:02.439 --> 01:24:04.579
to other editors that also use those bindings.

01:24:06.439 --> 01:24:11.960
Awesome. Okay. What about you, Greg? Someone

01:24:11.960 --> 01:24:15.649
coming from VS. Yeah, I agree with DT. I think

01:24:15.649 --> 01:24:20.130
for any software engineer, knowing how to navigate

01:24:20.130 --> 01:24:21.970
each of the basics of BIM is never going to be

01:24:21.970 --> 01:24:25.090
a wasted skill. That's always going to come in

01:24:25.090 --> 01:24:28.810
handy. If you're moved into a machine that only

01:24:28.810 --> 01:24:32.130
has VI, you're going to need to know those bindings.

01:24:32.890 --> 01:24:37.149
Yeah. Do a piecemeal, right? If you're a VS Code

01:24:37.149 --> 01:24:39.550
user that is comfortable with VS Code and you're

01:24:39.550 --> 01:24:44.920
new to BIM Curious, I would say Find ways to

01:24:44.920 --> 01:24:48.500
do it in chunks. You can try to switch wholesale,

01:24:48.880 --> 01:24:51.220
like whole turkey. That's going to be really

01:24:51.220 --> 01:24:54.319
challenging. And you're going to hit a lot of

01:24:54.319 --> 01:24:56.880
friction. This is true of any tool, right? Not

01:24:56.880 --> 01:24:59.880
just f***ing anything. Making a big switch like

01:24:59.880 --> 01:25:01.260
that is going to introduce a lot of friction.

01:25:01.800 --> 01:25:05.300
And if you are going into it knowing it's going

01:25:05.300 --> 01:25:07.460
to be hard, but you're dedicated to pushing through,

01:25:07.659 --> 01:25:10.390
that's great. Most people are not like that,

01:25:10.470 --> 01:25:12.029
right? Like most people, especially if this is

01:25:12.029 --> 01:25:13.970
like a work context, like most people want to

01:25:13.970 --> 01:25:16.710
be productive. So find ways to do it in small

01:25:16.710 --> 01:25:21.909
chunks. And don't start Neovan with, like your

01:25:21.909 --> 01:25:23.710
Neovan journey or whatever with like 40 plugins,

01:25:23.850 --> 01:25:27.170
right? Like start Neovan to edit a file, make

01:25:27.170 --> 01:25:30.829
a quick edit. And then start learning, okay,

01:25:30.909 --> 01:25:33.550
how do I create some splits? How do I navigate

01:25:33.550 --> 01:25:36.630
Windows, right? And just do a little at a time.

01:25:37.050 --> 01:25:42.279
I mean, I... I'm proficient in the event. That's

01:25:42.279 --> 01:25:44.140
not bragging. That's just a statement of fact.

01:25:44.399 --> 01:25:47.359
I've been using them full -time for over a decade

01:25:47.359 --> 01:25:51.239
at this point. I did not walk up to a computer

01:25:51.239 --> 01:25:56.239
when I was 18 years old and fly around the event.

01:25:56.420 --> 01:25:58.840
Nobody does that. It's very much a progression.

01:25:59.020 --> 01:26:00.539
I'm sure Emacs people are probably the same.

01:26:00.640 --> 01:26:03.020
When you start using Emacs, you're like babies

01:26:03.020 --> 01:26:07.300
first. Right. You don't start with the complicated

01:26:07.300 --> 01:26:11.380
stuff like macros and substitutions and things.

01:26:11.479 --> 01:26:13.720
You just need to know the motion keys at first.

01:26:14.300 --> 01:26:17.640
Or maintainer of NeoVim. I'm proficient at NeoVim.

01:26:18.920 --> 01:26:26.079
Breaking news. That's biased. And what about

01:26:26.079 --> 01:26:27.859
you, Josh? What would you recommend someone?

01:26:28.020 --> 01:26:30.460
I wholeheartedly agree with that, but I would

01:26:30.460 --> 01:26:33.239
even go one step further. If you are editing

01:26:33.239 --> 01:26:38.399
text, On a computer, you should learn Vim. If

01:26:38.399 --> 01:26:42.300
you're a writer, you should learn Vim. If you

01:26:42.300 --> 01:26:45.819
do anything editing and everybody edits text,

01:26:46.140 --> 01:26:49.680
you should learn Vim. Vim is incredible. The

01:26:49.680 --> 01:26:54.539
way that modal editing and the, I'll call it

01:26:54.539 --> 01:26:58.739
mnemonic editing, like DT to, there you go, shut

01:26:58.739 --> 01:27:03.640
out DT, DT to word or whatever. That's incredible.

01:27:04.029 --> 01:27:06.229
When you start to see that from a what you see

01:27:06.229 --> 01:27:08.090
is what you get editor coming to that, you're

01:27:08.090 --> 01:27:13.510
like, it's a revelation. It's completely different.

01:27:13.949 --> 01:27:16.909
And it's not just for programming either. He

01:27:16.909 --> 01:27:19.789
mentioned his book, just creative writing, because

01:27:19.789 --> 01:27:22.829
I've done the same thing. I've written a couple

01:27:22.829 --> 01:27:27.390
of books. I write it all in Emacs using them

01:27:27.390 --> 01:27:31.119
bindings, the evil bindings. When it's actually

01:27:31.119 --> 01:27:33.420
time to format it, then I'll put it into a word

01:27:33.420 --> 01:27:35.800
processor. But it's so much easier when you're

01:27:35.800 --> 01:27:39.199
writing to use the key bindings, the Vim bindings.

01:27:39.199 --> 01:27:41.239
It speeds up the process, especially when you

01:27:41.239 --> 01:27:44.619
need to move around large blocks of text. Just

01:27:44.619 --> 01:27:48.279
using a standard text editor is much more complicated.

01:27:48.680 --> 01:27:51.819
It probably saves me, and this is not a joke,

01:27:51.920 --> 01:27:56.300
probably between a day to two days every single

01:27:56.300 --> 01:28:00.109
month of work time, I would say. And that's not

01:28:00.109 --> 01:28:04.909
an exaggeration, which is insane. I've done some

01:28:04.909 --> 01:28:08.310
macros, some pretty complicated macros on things

01:28:08.310 --> 01:28:11.329
that literally would have taken me days, if not

01:28:11.329 --> 01:28:14.289
weeks, to do the same thing if I didn't have

01:28:14.289 --> 01:28:17.029
access to that kind of power that you get in

01:28:17.029 --> 01:28:21.609
a VMware Emacs. Yeah, 100%. And I think it's

01:28:21.609 --> 01:28:24.930
honestly just starting with Emacs. I think Doom

01:28:24.930 --> 01:28:29.079
is a great starting point. that is it's an editor

01:28:29.079 --> 01:28:31.159
of a lifetime like when you look at these two

01:28:31.159 --> 01:28:34.220
editors you are essentially undergoing this is

01:28:34.220 --> 01:28:37.000
a journey for the rest of your computing natural

01:28:37.000 --> 01:28:42.220
life right so um you shouldn't be hesitant to

01:28:42.220 --> 01:28:45.380
look into either of them try both of them and

01:28:45.380 --> 01:28:48.000
just get started with it because it's going to

01:28:48.000 --> 01:28:51.399
be the the rest of your computing use of a computer

01:28:51.399 --> 01:28:53.420
for the rest of your life you're going to be

01:28:53.420 --> 01:28:55.579
using these one one of these two tools if not

01:28:55.579 --> 01:28:59.720
you you may not end up on Vim or Emacs down the

01:28:59.720 --> 01:29:01.939
road, but yeah, you will definitely come out

01:29:01.939 --> 01:29:05.279
of it different. You will view software and computing

01:29:05.279 --> 01:29:09.380
in a totally different way. Yeah. It's a paradigm

01:29:09.380 --> 01:29:12.659
shift. Like it is a, it's a philosophical, it's

01:29:12.659 --> 01:29:14.899
a different way of using a computer than you

01:29:14.899 --> 01:29:18.520
have, you know, grown up using, we should have

01:29:18.520 --> 01:29:24.720
the sensor button for windows. But you come from

01:29:24.720 --> 01:29:26.500
that and you come to this and you're like, they're

01:29:26.500 --> 01:29:29.460
not even the same. It's not even the same endeavor.

01:29:30.199 --> 01:29:32.960
Yeah. It's pretty tough to go back to something

01:29:32.960 --> 01:29:37.100
else after I've used NeoVim. I'm not a developer,

01:29:37.460 --> 01:29:41.180
you know, but just for my markdown, my blog post

01:29:41.180 --> 01:29:43.279
and all that stuff, if I need to write scripts,

01:29:43.560 --> 01:29:47.220
I cannot do it in VS Code. I could, you know,

01:29:47.279 --> 01:29:50.279
and I can enable Vim motions, but it just doesn't

01:29:50.279 --> 01:29:54.619
feel the same. I don't know. It feels like a

01:29:54.619 --> 01:29:59.340
total downgrade, man. I don't know. Yeah. All

01:29:59.340 --> 01:30:03.340
right, guys. Really appreciate everyone's time.

01:30:03.460 --> 01:30:06.479
Thank you very much. Thanks to all of you. Thanks

01:30:06.479 --> 01:30:09.300
for organizing this. I enjoyed the chat. That

01:30:09.300 --> 01:30:13.260
was fun. I gotta say, Greg, it's definitely a

01:30:13.260 --> 01:30:15.800
thankless job to maintain an open source project.

01:30:16.000 --> 01:30:18.859
So that's pretty cool, man. Cool. Oh, thanks.

01:30:19.060 --> 01:30:24.039
I mean, you just said, you just, I get, I get

01:30:24.039 --> 01:30:28.020
occasionally stuff, you know, people, stuff like

01:30:28.020 --> 01:30:31.399
this happens. So it feels a little bit not so

01:30:31.399 --> 01:30:34.100
thankless. Yeah. Oh, that's awesome. No, honestly,

01:30:34.239 --> 01:30:37.140
it's, I don't think of it as thankless to talk

01:30:37.140 --> 01:30:39.260
about this for a second. It's, I think it was

01:30:39.260 --> 01:30:43.880
a huge honor, honestly, like to see someone I

01:30:43.880 --> 01:30:46.880
really respect is COVID. who Christian just interviewed,

01:30:47.020 --> 01:30:50.220
right? Did you watch it? I watched Heart of it,

01:30:50.279 --> 01:30:53.340
yeah. I was not a fan. I didn't know too much

01:30:53.340 --> 01:30:55.479
about him because you have an image. Did you

01:30:55.479 --> 01:30:57.880
have an image before the video? Be honest. And

01:30:57.880 --> 01:31:03.180
did it change after it? I mean, I didn't watch

01:31:03.180 --> 01:31:06.859
the whole thing. I already know COVID kind of.

01:31:06.920 --> 01:31:08.779
I don't know him personally very well, but I've

01:31:08.779 --> 01:31:11.119
interacted with him enough between Ghosty and

01:31:11.119 --> 01:31:14.840
U of M to already have like, no. his little bit

01:31:14.840 --> 01:31:20.500
on his personality. But he's kind of a controversial

01:31:20.500 --> 01:31:22.199
person. Are we still recording? Are we still

01:31:22.199 --> 01:31:26.039
live right now? Yeah, we're live. Time to take

01:31:26.039 --> 01:31:30.739
this private. That's why I was being quiet. Josh,

01:31:30.739 --> 01:31:32.819
he's being quiet. We're all like, where's this

01:31:32.819 --> 01:31:36.760
going? I'll still say what I was going to say.

01:31:36.880 --> 01:31:38.979
I understand he's kind of controversial. He has

01:31:38.979 --> 01:31:41.140
some hot takes and opinions, of course. And he's

01:31:41.140 --> 01:31:45.810
publicly said, Things that I think were sometimes

01:31:45.810 --> 01:31:47.930
rude, for sure, but I also have a ton of respect

01:31:47.930 --> 01:31:52.670
for him. He has single -handedly pushed the terminal

01:31:52.670 --> 01:31:56.970
ecosystem as a platform. I think even five, ten

01:31:56.970 --> 01:31:59.689
years ago, to even say that the terminal is a

01:31:59.689 --> 01:32:02.970
platform would have been a joke, right? I don't

01:32:02.970 --> 01:32:06.189
think anyone would take that seriously. But COVID

01:32:06.189 --> 01:32:09.869
has almost single -handedly solved so many issues

01:32:09.869 --> 01:32:13.270
that have been... that have played terminal applications

01:32:13.270 --> 01:32:19.369
for years by themselves. I still have a huge

01:32:19.369 --> 01:32:21.390
amount of respect for them. Anyway, the only

01:32:21.390 --> 01:32:23.350
reason I brought this up is because to hear someone

01:32:23.350 --> 01:32:25.409
like that, who I admire and respect, they're

01:32:25.409 --> 01:32:29.550
using NeoVim, right? On the Ghostier project,

01:32:29.750 --> 01:32:33.529
Mitchell is the chemical lead developer and the

01:32:33.529 --> 01:32:36.670
originator of that project. And he uses NeoVim,

01:32:36.770 --> 01:32:38.770
right? And another person that I have this enormous

01:32:38.770 --> 01:32:42.079
amount of respect for. I have coworkers, right?

01:32:42.640 --> 01:32:46.180
They don't know me, right? But they use NeoVim,

01:32:46.239 --> 01:32:50.539
right? So being on this team of people that creates

01:32:50.539 --> 01:32:55.939
this tool that people love, right? It was like

01:32:55.939 --> 01:32:58.680
the top most loved editor in the Stack Overflow

01:32:58.680 --> 01:33:01.539
service for multiple years in a row. So that's

01:33:01.539 --> 01:33:03.800
a huge honor to me. So I don't think of it as

01:33:03.800 --> 01:33:06.300
thankless. I'm just so glad to even be included,

01:33:06.399 --> 01:33:10.000
right? To be able to touch this thing that has

01:33:10.000 --> 01:33:13.340
an impact on people's lives, I get a lot of affection

01:33:13.340 --> 01:33:15.760
out of. It's a big responsibility too, right?

01:33:15.960 --> 01:33:20.000
I do take it really seriously when people say

01:33:20.000 --> 01:33:22.500
that they updated me and then the stuff breaks,

01:33:22.579 --> 01:33:27.100
right? I think we're cheering as a project to

01:33:27.100 --> 01:33:30.460
try to be better about that. But it does have

01:33:30.460 --> 01:33:32.899
a sense of responsibility that this is an important

01:33:32.899 --> 01:33:35.359
part of people's workflows and we need to take

01:33:35.359 --> 01:33:39.689
that really seriously. And going back to the

01:33:39.689 --> 01:33:43.109
point of COVID as well, you know, I had a, I

01:33:43.109 --> 01:33:44.770
don't know, I watched a couple of videos, maybe

01:33:44.770 --> 01:33:46.569
because you just watch videos, you just read

01:33:46.569 --> 01:33:50.869
a few comments in GitHub, you create an image,

01:33:50.909 --> 01:33:53.989
right, of that person. But after the interview,

01:33:54.109 --> 01:33:57.170
that completely changed. I'm a fan now, like

01:33:57.170 --> 01:34:02.989
full COVID fan, man. I'm a fan too, like I said

01:34:02.989 --> 01:34:06.289
earlier. I know I asked why I was kind of hinting

01:34:06.289 --> 01:34:09.750
that I was going to talk crap, but I really wasn't.

01:34:09.770 --> 01:34:13.550
I had a ton of respect for him. I think every

01:34:13.550 --> 01:34:15.789
newbie user owes him a lot, even if they don't

01:34:15.789 --> 01:34:20.090
use Kitty. Now, do you know who started the graphics

01:34:20.090 --> 01:34:24.210
GPU accelerated terminals? Because I forgot to

01:34:24.210 --> 01:34:27.670
ask him that. Was it COVID or was it the alacrity

01:34:27.670 --> 01:34:30.210
guys? Do you have an idea? Oh, no, I don't. I

01:34:30.210 --> 01:34:33.170
don't know which one. Honestly, I think iTerm

01:34:33.170 --> 01:34:35.550
might even be in that discussion, honestly, because

01:34:35.550 --> 01:34:38.010
iTerm has been around for a long time, and they

01:34:38.010 --> 01:34:41.750
also have UGPU acceleration. I don't know who

01:34:41.750 --> 01:34:43.569
was the first to do it, though, to answer your

01:34:43.569 --> 01:34:46.789
question. I don't use a Mac, but on Linux, Alacrity

01:34:46.789 --> 01:34:49.369
was the first one I remember ever doing that.

01:34:49.369 --> 01:34:51.729
I was going to say Alacrity. And now there's

01:34:51.729 --> 01:34:58.869
a dozen of them. Okay. Any... Anything else?

01:34:58.869 --> 01:35:01.010
Any final words that you guys want to share?

01:35:01.189 --> 01:35:07.989
We can do a roundtable if you guys like. That

01:35:07.989 --> 01:35:13.189
was a great discussion. There was no throwing

01:35:13.189 --> 01:35:16.390
down or anything like that. I do agree with DT.

01:35:16.529 --> 01:35:21.810
This is the oldest going battle and it's probably

01:35:21.810 --> 01:35:24.880
just because we're not... seven years old that

01:35:24.880 --> 01:35:27.279
we're not screaming. We're not invested in it.

01:35:27.340 --> 01:35:33.020
Yeah. It's like, it's one thing. It's like, I

01:35:33.020 --> 01:35:35.060
was going to say it was different. Obviously

01:35:35.060 --> 01:35:37.560
like in the eighties and nineties, people took

01:35:37.560 --> 01:35:41.760
that, that editor battle seriously where now

01:35:41.760 --> 01:35:45.060
nobody really cares. Let's be honest, you know,

01:35:45.060 --> 01:35:48.619
NeoVim, Emacs. Most people are using that editor

01:35:48.619 --> 01:35:51.819
that shall not be named. It's really what the,

01:35:51.840 --> 01:35:54.960
uh, I don't use it. I've never tried it. I know

01:35:54.960 --> 01:35:58.260
nothing about VSBeep, but I'm sure it's fine

01:35:58.260 --> 01:36:04.720
too. Yeah. It's like Linux and macOS, you know.

01:36:04.819 --> 01:36:09.800
I have been interviewed in Linux channels. UDT,

01:36:09.880 --> 01:36:14.340
Brody as well. I don't know. I don't know if

01:36:14.340 --> 01:36:17.539
the communities are being brought together as

01:36:17.539 --> 01:36:20.680
well in that sense or... i know there's a fight

01:36:20.680 --> 01:36:25.159
against windows i don't know why but um they're

01:36:25.159 --> 01:36:28.260
strong opinions it's open source versus everyone

01:36:28.260 --> 01:36:29.920
really like i think that that at the end of the

01:36:29.920 --> 01:36:33.199
day it's open source versus closed source and

01:36:33.199 --> 01:36:36.539
i think open source is winning um drastically

01:36:36.539 --> 01:36:41.140
yeah yeah i think it's different now because

01:36:41.140 --> 01:36:44.600
linux is becoming so much more popular like we're

01:36:44.600 --> 01:36:48.560
gaining users at like a crazy pace When I started

01:36:48.560 --> 01:36:51.619
using Linux on the desktop, we, we didn't even

01:36:51.619 --> 01:36:54.079
have like 1 % market share. They just crossed

01:36:54.079 --> 01:36:57.460
five. Yeah. Like it's, it's, it's insane, you

01:36:57.460 --> 01:37:01.500
know? And yeah, like we just crossed 2 % probably

01:37:01.500 --> 01:37:03.520
five years ago. When you think about that, we

01:37:03.520 --> 01:37:05.819
more than double probably in the last, uh, since

01:37:05.819 --> 01:37:08.359
the steam deck, you know, became a thing really.

01:37:08.439 --> 01:37:11.020
I think that's helped. Yeah. When I started using

01:37:11.020 --> 01:37:16.649
Linux 2 .18 % or something. I remember looking

01:37:16.649 --> 01:37:22.670
at some stat counter metrics in 2007, 2008, where

01:37:22.670 --> 01:37:25.569
it didn't even register. It's less than a percent.

01:37:26.010 --> 01:37:30.470
It's just crazy where things are at now. We're

01:37:30.470 --> 01:37:33.829
taking all that market share from Windows, by

01:37:33.829 --> 01:37:37.600
the way. It's not Mac losing users. It's Windows.

01:37:37.939 --> 01:37:40.319
They're all Windows. Mac too. I don't know if

01:37:40.319 --> 01:37:43.300
you guys have heard about DHH recently. He switched

01:37:43.300 --> 01:37:47.100
to Linux and I think a lot of people are thinking

01:37:47.100 --> 01:37:49.279
about it. Have you thought about it, Gregory?

01:37:49.479 --> 01:37:51.859
You said that you don't have the time and energy

01:37:51.859 --> 01:37:54.819
to invest in the Linux desktop right now, but

01:37:54.819 --> 01:37:56.600
have you thought about it? Or you're just like,

01:37:56.739 --> 01:38:01.560
I don't care at all. I use Linux on the desktop.

01:38:01.920 --> 01:38:04.699
full -time at work. I have a Linux desktop right

01:38:04.699 --> 01:38:06.659
here on the ground next to me that I use to play

01:38:06.659 --> 01:38:10.500
video games. I would say using, this is not going

01:38:10.500 --> 01:38:13.039
to be a popular opinion, but using Linux at work

01:38:13.039 --> 01:38:15.439
full -time has made me appreciate my Mac even

01:38:15.439 --> 01:38:22.159
more. So, no, I'm fully Mac -filled. I really

01:38:22.159 --> 01:38:25.680
like macOS. I appreciate Linux. There are a lot

01:38:25.680 --> 01:38:32.039
of parts of it I like, but I, yeah, I'm, I really

01:38:32.039 --> 01:38:35.100
like using a Mac. Why? I'll be a Mac user for

01:38:35.100 --> 01:38:39.699
life. Yeah. And why is that? Why? Yep. I feel

01:38:39.699 --> 01:38:42.859
like for me, macOS strikes the perfect balance

01:38:42.859 --> 01:38:48.939
between aesthetics, design, and still has enough

01:38:48.939 --> 01:38:53.880
of the positive underbelly foundation to be enough

01:38:53.880 --> 01:38:56.579
to let me do all the things that I want to do

01:38:56.579 --> 01:39:03.619
on a computer. And it's stable. On these laptops,

01:39:03.800 --> 01:39:07.000
the battery life is insane. I don't know if it's

01:39:07.000 --> 01:39:08.380
a hardware thing too. This is not necessarily

01:39:08.380 --> 01:39:11.739
Linux's fault. But on my work laptop, I have

01:39:11.739 --> 01:39:13.939
it unplugged right now. I guarantee you when

01:39:13.939 --> 01:39:16.739
I come to work on Monday, it's asleep. It's not

01:39:16.739 --> 01:39:20.600
on. It's not charged. On Monday when I come into

01:39:20.600 --> 01:39:23.479
work, it's going to be dead. It's going to be

01:39:23.479 --> 01:39:25.260
like it's suspended and the battery is still

01:39:25.260 --> 01:39:27.979
going to drain and die. On my MacBook, I can

01:39:27.979 --> 01:39:30.359
leave this thing off the charger for weeks and

01:39:30.359 --> 01:39:32.000
I can just open the lid up and it's still good

01:39:32.000 --> 01:39:34.439
to go, right? Like that's, that's huge. This

01:39:34.439 --> 01:39:36.920
thing doesn't even have a fan. Like this thing,

01:39:36.920 --> 01:39:40.979
like my MacBook will, will turn like crazy. It

01:39:40.979 --> 01:39:43.319
has enormous computing power and I never hear

01:39:43.319 --> 01:39:47.180
the fan. On my Linux work laptop, the fans never

01:39:47.180 --> 01:39:49.000
stop. Like it's stuff like that, right? Like

01:39:49.000 --> 01:39:50.819
just the, and then there's like, there's stability

01:39:50.819 --> 01:39:53.680
problems, right? Like the audio on Linux is such

01:39:53.680 --> 01:39:55.979
a. Yeah, that's definitely a serious issue. I've

01:39:55.979 --> 01:39:59.039
never had any audio problems on my Mac. So it's

01:39:59.039 --> 01:40:02.220
not like that. I totally understand the people

01:40:02.220 --> 01:40:06.840
that like to tinker and want to modify their

01:40:06.840 --> 01:40:08.380
system and control their customers. I totally

01:40:08.380 --> 01:40:09.939
understand that. And if that's something you

01:40:09.939 --> 01:40:12.359
care about, obviously, macOS is not going to

01:40:12.359 --> 01:40:15.220
be for you. But for me, I'm at a stage in my

01:40:15.220 --> 01:40:16.720
life where it's like, when I get on my computer,

01:40:17.079 --> 01:40:20.060
I'm there to do something. I'm there to get something

01:40:20.060 --> 01:40:22.949
done. And I just want to open it. out of work,

01:40:23.050 --> 01:40:25.189
get whatever it's like I'm doing done and be

01:40:25.189 --> 01:40:27.649
done, right? Like if I want to tinker, I have

01:40:27.649 --> 01:40:30.630
my gaming computer, right? Like I have that outlet

01:40:30.630 --> 01:40:34.010
if I need it. If I just want to dig around, you

01:40:34.010 --> 01:40:36.409
know, pardon me. It depends on the type of user

01:40:36.409 --> 01:40:39.569
you are too. Like we're all probably the kind

01:40:39.569 --> 01:40:42.310
of people we spend most of our time in a terminal,

01:40:42.449 --> 01:40:45.210
at the shell, in our text editor of choice, whatever

01:40:45.210 --> 01:40:48.489
it happens to be. And the operating system at

01:40:48.489 --> 01:40:51.619
that point really doesn't. As long as you can

01:40:51.619 --> 01:40:55.640
get to the tools you're using, it doesn't matter.

01:40:55.800 --> 01:40:58.880
That's why I don't really hop between Linux distros

01:40:58.880 --> 01:41:01.899
anymore. Because it doesn't make any sense that

01:41:01.899 --> 01:41:04.180
most of the time I'm spending in the shell, in

01:41:04.180 --> 01:41:06.779
the terminal, using the same bash shell with

01:41:06.779 --> 01:41:10.369
the same... Core utilities. It doesn't make sense

01:41:10.369 --> 01:41:13.149
for me to spend a couple hours hopping from one

01:41:13.149 --> 01:41:15.689
distro to the next and then the next day do a

01:41:15.689 --> 01:41:19.029
different distro. I'm just hopping for no reason.

01:41:19.050 --> 01:41:21.149
I'm just getting the same experience on each

01:41:21.149 --> 01:41:24.989
distro. Once you're no longer tied to desktop

01:41:24.989 --> 01:41:26.430
environments, like if you're one of these people

01:41:26.430 --> 01:41:29.130
that really are invested in menu systems and

01:41:29.130 --> 01:41:31.810
things like that, I guess it matters. But for

01:41:31.810 --> 01:41:35.409
me, I can't distro hop anymore. It's become a

01:41:35.409 --> 01:41:38.880
pointless activity. Yeah. You can start with

01:41:38.880 --> 01:41:42.380
Nix Darwin and then you can use NixOS full time.

01:41:42.659 --> 01:41:46.439
But how often do you redeploy your computer,

01:41:46.640 --> 01:41:50.479
Josh? And be honest, you spent like two months

01:41:50.479 --> 01:41:52.859
setting up everything in Nix and you're going

01:41:52.859 --> 01:41:55.619
to redeploy your computer every 10 years. So

01:41:55.619 --> 01:41:57.880
you just lost a lot of time there. No, no, no,

01:41:57.899 --> 01:42:00.539
no, no. I have lots of servers, man. Lots of

01:42:00.539 --> 01:42:07.819
servers. You got lots of servers. Because I have

01:42:07.819 --> 01:42:10.979
this laptop and I have like three other laptops

01:42:10.979 --> 01:42:13.520
at home, right? So it's really nice to be able

01:42:13.520 --> 01:42:16.300
to spin up literally the same environment on

01:42:16.300 --> 01:42:20.739
all of these different computers in one file.

01:42:20.899 --> 01:42:24.239
It's pretty sweet. I'm not going to lie. What

01:42:24.239 --> 01:42:28.899
distro did you end up on, DT? Just Arch? Right

01:42:28.899 --> 01:42:34.600
now, it started life as Arco Linux probably about

01:42:34.600 --> 01:42:38.050
three or four years ago. which Arco is no longer

01:42:38.050 --> 01:42:40.289
around, but I haven't really used the Arco repos

01:42:40.289 --> 01:42:43.069
in forever. It's essentially my distribution

01:42:43.069 --> 01:42:46.369
because I have my own repo of software and packages

01:42:46.369 --> 01:42:51.989
I maintain. So it's Arch, but the Arch guys wouldn't

01:42:51.989 --> 01:42:55.609
support this thing. Like, hey, what have you

01:42:55.609 --> 01:42:58.810
done to this, right? I've got a lot going on.

01:42:58.850 --> 01:43:01.390
Of course, I don't go to forums and do support

01:43:01.390 --> 01:43:03.109
requests anyway. I take care of my own problems.

01:43:03.170 --> 01:43:05.430
I have for years because, you know, the Arch

01:43:05.430 --> 01:43:09.659
guys are mean. Yeah, fair enough. It does seem

01:43:09.659 --> 01:43:12.119
that everybody essentially ends up at Arch or

01:43:12.119 --> 01:43:17.699
Debian, pretty much. It's those two. Yeah, Debian.

01:43:19.140 --> 01:43:21.880
I've been thinking about Linux, and I think I

01:43:21.880 --> 01:43:24.800
will go with, I don't know, I have no idea. I

01:43:24.800 --> 01:43:26.779
want to try Arch just for the sake of trying

01:43:26.779 --> 01:43:29.560
it, but I'm more into Debian. That's what I use

01:43:29.560 --> 01:43:31.920
in all my servers, Debian, all the time. They're

01:43:31.920 --> 01:43:37.189
really stable, man. Yeah, I don't know. You can

01:43:37.189 --> 01:43:43.510
use my NixOS configuration. That'll be an experience.

01:43:45.289 --> 01:43:48.989
He might prefer something else. Gentoo or Slackware.

01:43:49.909 --> 01:43:53.130
That would be. Yeah, I heard those are complicated

01:43:53.130 --> 01:43:55.449
to install. I don't want to spend too much time.

01:43:55.850 --> 01:43:58.829
They're a little different. Yeah. All right,

01:43:58.850 --> 01:44:01.859
guys. Thank you very much. Appreciate everyone's

01:44:01.859 --> 01:44:04.600
time. No, thanks to you. Thanks for, all right.

01:44:04.600 --> 01:44:06.859
Thank you, Christian. Rescheduling. Appreciate

01:44:06.859 --> 01:44:10.119
it. Gregory, Joshua. Nice to meet y 'all.
