Aesthetically, Lua is super ugly. I hate looking
at Lua. I don't particularly like enjoying Lua.
You just run Terminal. We put the name of our
company in there. No, I'm just kidding. I'm waiting.
After I do this, I know someone's going to make
this package in Emacs. I'm giving away competitive
advantage here. This is new tech. I was really
hoping you were going to say... Edit, you know,
edit videos, edit music, edit text. Those are
all the things that I don't do inside Emacs.
But if you're like, oh, it just... Every time
I open NeoVim and auto updates, it pulls the
latest NeoVim update and pulls the latest lazy
thing. Yeah. Possibly from the same day. Nobody's
got time to sync those up together. You're touching
a sore spot for me right now, TJ. I know I am.
I know. I'm helping. I'm helping, Greg. I'm helping.
I appreciate it. You know, he's kind of a controversial
person. Are we still recording? Are we still
live? Yeah, we're live. We're live. No, but time
to take this pride. Yeah, yeah. If you're listening
to this as a podcast, remember that it was originally
recorded as a video. If you're not following
along, you can go to my YouTube channel. And
if you want to support me to keep this podcast
going, you can donate in Ko -Fi. I'm going to
leave a link in the description. So let's get
started with this chapter then. There's a discussion
going on between the only two editors out there
that matter. And those are Neovim and Emacs.
There's other editors out there as well. I don't
know. Cursor is the only one I know. I have never
installed it. I've never used it, but... ED is
another. Oh, yeah. I actually just handed the
CEO of Cursor the NeoVim help manual printed
out, first page of it yesterday. Not joking.
Really? Yeah, when I was in San Francisco, I
handed him a signed copy. Man. By the way, thanks
for showing up, TJ, because we were missing a
guest, so I reached out to TJ and he accepted.
Really appreciate it. I also want to apologize
with the rest of you because I have to reschedule
like, I don't know, four or five different times.
There was a lot of back and forth. So apologize
for that, guys. And what are we doing? We're
just going to discuss, you know, friendly, talk
about the different, well, the two editors. Okay,
so let's start by introducing each other, just
in case there's someone in the audience that
doesn't know who you are. Two minutes. That's
what I have in the agenda here. Introduce each
one of the guests. Demos. Each one of the guests
is just going to talk about the tool that they
use. Five minute seats approximately or seven
minutes. That's going to be a total of 30 minutes
around that. Experience. If you have experience
with the opposite tool or not. And what would
you recommend someone starting with? with all
this, Neovim, Emacs, why, and if there's other
editors that you would recommend, right? So let's
just start with introductions. TJ, let's go with
you. Cool. I'm TJ DeVries. You may see me around
as TJDV. I'm working at terminal .shop these
days. We do coffee through the terminal. You
can buy it, ssh, terminal .shop. And we also
do a lot of other stuff. I work with the Primogen
a lot on making videos, hosting events, and doing
random programming stuff. So you'll see us, I
think, if you didn't see us in the tower earlier
this year, we built a video game in a week in
a water tower. Tower defense game in a water
tower. So there you go. And we're going to go
back to that later this year. So you can keep
your eye out for that. Are you the CEO of Terminal
.shop? We've got a lot of them. We've got several.
Yeah. Okay, awesome. Now, we also have DT with
us. Yeah, my name is Derek DT. The channel on
YouTube and Odyssey is DistroTube. I typically
talk about Linux -related topics, free open -source
software, lots and lots of videos over the years
on Vim and Emacs, so probably 100. Lots of stuff.
Of course, various shell utilities and scripting
and a lot of nerdy stuff and some fun stuff as
well. I have spammed the YouTube algorithm, so
you might have seen me in your search results.
So that is the goal. That's the game I'm playing.
I want to thank the first person that got the
CEO YouTube membership. That is Web23. You should
be able to see the name somewhere around here.
alongside with the website. So if you want to
support me and my family so that I can keep making
these videos, I'm going to leave a link in the
video description. You can consider becoming
a YouTube member. You get different perks with
the different memberships, but if you become
a CEO, I have to say your name on the credits
of each one of the videos. But that's not the
only one. I have different levels. Each one of
them supports and keep the channel going. Let's
see if we can get the heart out. Where is it?
There we go. All right. So let's jump back to
the video. Awesome. We also have Greg with us.
Yep. Hey, I'm Gregory. I'm here because I'm on
the Neonim core maintainer team. I've been involved
with Neonim as a project for, I think it's been
about four years now, which is kind of crazy
to think about. I've been using them for that
full -time for a lot longer. Unlike, I think,
a lot of the other guests, I don't have a huge
online presence, I guess. I spend time in Davin's
Fits a lot on GitHub and things like that. I
do have a blog that's linked in my little description
bubble somewhere over here where I occasionally
write tech -related stuff. It's not very regular.
So if you're an RSS subscriber or something,
you might get one every couple months or something.
But yeah, aside from that, I work. My background
in software engineering has been a little bit
varied. I started out doing web development for
a technology consulting firm, like JavaScript
front ends and Java, JSP backend stuff, most
kind of my roots. And then I went almost full
into the other direction and started working
in electrical engineering, FPGAs, embedded, the
level embedded stuff, which I ended up really
enjoying a lot. And I'm currently somewhere in
the middle of doing systems engineering at Cloudflare,
which I'm also really enjoying. So that's what
I do during the day. And then my open source
stuff keeps me busy in my free time. And what
do you do in the NeoVim team? What are your contributions
or what? Honestly, a little bit of... I've kind
of touched a little bit of everything. Like LSP
and TreeSitter are probably some of the more
user -casing stuff. I would say probably my main
contributions that are the stuff that I really
enjoy the most is anything that's related to
the terminal. So NeoVim, especially in the last
year or two, I think has seen a lot of improvements.
and new features related to new terminal standards,
which we'll talk about, I'm sure. And that kind
of dovetails nicely with also another project
that I'm involved with, Ghosty. And that's been
a pretty beneficial relationship because NeoBIM
is a fairly popular terminal -based tech center,
and Ghosty is a fairly popular terminal. And
so there's a lot of overlap between those two.
And it has happened a lot of times where if you
find a bug... And NeoVim through Ghosty helps
me triage the bug quicker. And then also, as
we develop new features in Ghosty, I can test
them in NeoVim and vice versa. A big problem
with the terminal stuff is there's not a real
standards body. The way that new features develop
is someone proposes something, and then you have
to get agreement with other terminal emulators
or applications to say, yeah, we want to do this.
And you see this a lot where someone will propose
something. And then other people say, okay, it
sounds nice, but who implements this, right?
Like, as a terminal emulator author, no applications
do this, so why would I bother? And as a terminal
application author, you say, well, no terminals
support this, so why would I bother? And so you
kind of create this bootstrapping problem. So
with me double -dipping in Ghosty and NeoVim,
we've kind of found a hack around this because
I can just say, yeah, Ghosty creates this new
feature, I'll just go implement it in NeoVim.
You know, no problem. We found out the answer
was Greg both times. That's the answer. Who writes
this? No matter what, it's always Greg. And so
contributor in both of the projects, like are
you really active in Ghosty as well? I used to
be a lot more. So I'm still on the maintainer
team. I still technically have the ability to
do like merge PRs and stuff, although I don't
do that very often these days. I try to stay
involved with like the discussions, but between
working full time. working with NeoVim and his
personal life stuff. Don't have as much time
today as I used to. Also, frankly, it's kind
of a testament towards Ghost's maturity because
a lot of my contributions to Ghost in the early
days were just, I was using this new terminal
and I was like, oh, it doesn't have this feature
that I want. So I would go just implement it
and that would be my contribution. And I just
did that enough times where I was able to develop
trust and credibility in the community. But today,
Ghost Tea is like, as far as I'm concerned, it's
perfect. Like, I have zero complaints or feature
requests. It just does exactly what I want. So
I was like, well, I don't have any real strong
motivation to... We need sessions. Yeah. I didn't
say it's perfect for everybody. It's just perfect
for me. Like, for what I need it to do. It does
everything. So I'm kind of just like, all right,
just feel done to me. Don't make me look selfish.
But it's in very good hands. I mean... The other
maintainer team is incredible. So my reduced
contributions certainly are not having a negative
impact on the project. Awesome. Okay. Thanks
for sharing that. We also have Joshua Blaze with
us. Hey, everybody. I'm Joshua. When are you
shipping coffee to Canada, Teej? We tried. And
like, I'm not joking, like 25 % of them just
disappeared in customs. so we we did try we have
to find a canadian roaster so as soon as we do
all i can let you know i'll let you know yeah
keep me posted because i looked at ordering the
other day yeah i'm joshua blaze i uh i use emacs
i uh clearly i've written some stuff on it on
the internet um and uh written a book in it actually
and uh program day -to -day in it it's uh it's
kind of taking over my computer almost holistically
so it's literally how i use a computer um i am
emacs meme in that it has essentially taken my
entire life and uh yeah so that's why i'm on
this stream oh but you had an adventure with
new of him are you ashamed of that yes yeah i
i i did um about a year ago i made a video about
why i left emacs and i quickly recanted because
uh it's just not the same it's just not the same
real issue as prime would say That's funny. All
right. Thanks, everyone. So I think we can talk
a lot about each one of the tools, but words
are not going to do justice or not going to,
you know, help people take a decision. So that's
the goal, you know, just if there's someone watching
this, they hear about both of the editors. You
have Emacs. They don't know where to start. They
don't know which one to use. So if you guys can
show each one of your setups, that's the goal.
We're going to do it interactive. And people
as viewers can take their own decisions. So why
don't we start with that? You want to go first,
Teach? I want Greg to go first. You want Greg
to go first? Yeah, I want Greg to go first. I
want to see how he's using the OVM these days
so I can steal some tricks. Okay, Greg, want
me to switch it to your screen? Let's do it.
All right. I can see it. Okay, so, yeah. All
right, so this is, I'm sure I don't have to explain
to any of the people watching this what we're
looking at here, but this is a terminal emulator,
of course. This is Ghosty, as we talked about.
I guess, like any van or DM user will kind of
say, NeoVim today and Vim 2 can do quite a lot.
It's become extremely extensible and it really
is a platform not too dissimilar from VMAX. But
the way that I use NeoVim and I think most users
do is that primarily as a text editor inside
of the shell and kind of the terminal -based
ecosystem as like a broader IDE. So anyone that
uses NeoVim or Vim also probably has a lot of
opinions about their shell and which shell they
use and how they use it and stuff. And I'm different.
I use Phish. I'm a big fan of Phish. I don't
do anything super fancy. I just have the same
shell prompt that I've been using for... forever
now. It's the thing that everyone else uses,
apparently. I didn't realize that when I saw
it. I was like, oh, that looks nice. And I started
using it. And then I would watch other people
share their screens or do YouTube videos. And
I found out everyone uses this, I guess. So I
guess I'm just very basic that way. I did write
it myself, though. I'm not talking about any
of them right now. I will. I promise. But my
fish prompt, I did write myself. It's adapted
from other ones. I really disliked all the built
-in Git info stuff. It was super laggy on the
default ones and some of the ones I've looked
at. So I do like this extremely over -engineered
phish prompt that I won't walk through this because
this is not why we're here. But it's almost embarrassing.
There's like 200 lines of code just for my prompt.
And it's only because I was obsessed with making
it. Like, I wanted zero delay between, like,
I want to be able to, like, spam enter and there
never be a delay with, like, the git prompt.
The irony to all of this is that I now use Jujutsu
instead of git, and so I don't even include my
git info in my prompt at all anymore. So all
of that engineering effort is wasted. But the
one place I do still use git, not Jujutsu, is
my .file, so you can see it here. I have like
my branch, but it's like, see, I can like hold
this down and there's never a delay. So I'm very
proud of that. Anyway. Yeah. So I use a fish
as like my shell and that's like my primary development
environment. And then, you know, there was my
editor. So I don't really have anything planned,
I guess. I'll talk about like, so when I start,
you know, then this is what I see. This is kind
of what my setup looks like. I have my little,
LSP notifications in there. Fairly basic status
line. Nothing too crazy here. I've been using
Nord as my color scheme forever. I really hate,
I hate working with color schemes. Like I know
some people like love super similar color schemes
every week. I literally cannot think of anything
less fun. I hate it so much. So I found one that's
like good enough for me and has like built -in
presets for a lot of different things. And I
haven't changed. And Nord is a little bit, it's
like very blue. Sometimes I feel self -conscious
about how blue it is when I'm like sharing my
screen or something. But I like that it doesn't
have a ton of colors. It has like, it's a fairly
low contrast. It only has a few different colors
which I like. I've noticed that most people use
low contrast themes. Mine is pretty high contrast.
It leaves you blind. If you look at my screen,
just look at those colors. But I guess that is
not so popular, right? Oh, I can't stand low
contrast. My eyes just can't handle it. Yeah,
for sure. I think high contrast is better from
an accessibility standpoint. For me, it's not
really the low contrast that I like. It's just
the few colors. If there were more contrast here,
I don't think I would mind. It's just that I
like that there's only three or four colors when
it seems like a lot of... popular color schemes
today have close to a dozen. And I'm like, I
don't know. I guess one of my medium spicy takes
is if your color scheme has... The point of syntax
highlighting is to quickly draw your eye to relevant
information to help you visually parse things
quicker, right? And if you have too much stuff
highlighted, you end up going too far in the
other direction. And then it's equivalent to
having nothing highlighted because there's not
enough visual distinction. But I don't know how
many other people have shared that opinion. I
might be a bug that I'm in by myself. But anyway,
yeah, so I just use Nord, pretty basic setup.
I will say like the way that I use NeoVim today
is I think would look familiar to an old school
Vim user, right? Like I used Vim years for years
before I used NeoVim. And I think that really
had a big influence on kind of the way I think
about it as a tool and how I use it and how I
like to use it. So I don't have a lot of eye
candy. I do have some, for sure. But I try to
stick to Vim paradigms and the default Vim way,
so to speak, of doing things as much as I can.
So that's a big... If one can have a philosophy
of text editing, I guess that's mine. So when
it comes to like how I have NeoVim configured,
I have a lot of custom stuff, right? Like all
of these directories full of files. Even my plugin
manager is just like this little shell scripts
that I wrote, like a hundred lines. This is all
I have as far as plugins. Oh, okay, okay, okay.
You don't use LazyVim? No, I don't use Lazy.
I don't know. I guess when I switched to... So
when I was using Vim, I used, I don't know, Vimplug,
and then I used Minpack for a little bit because
I liked how simple and dumb it was. The way you
install plugins in Vim, and I know it's a little
bit different than Emacs, my experience there,
but in Vim, all you have to do is clone a repo.
You put some files in a certain directory, and
then it's installed. That's it. So I was looking
at... I don't want to call any names out. I don't
want to name and shame or anything. But I was
looking at these different plugin managers for
Neovin, and there were hundreds and hundreds
and sometimes thousands of lines of code. And
I was just like, why? To me, it just felt wrong.
I was like, this should be so simple. A plugin
manager for Vim is basically a fancy Git wrapper.
So if I just wrote one myself as a shell script,
how simple can I make it? And this is all just
POSIX shell that doesn't use any bashes. So it
works literally on every Unix POSIX system. And
then that's it. I don't use a lot of... I'm kind
of cheating here. Yeah, that is cheating to put
mini in there. That's like 95 plugins. That is
a little bit of cheating. It is cheating. I don't
deny that at all. It is cheating. Of these, I
use like maybe, I don't know, seven or eight
of Evgeny's mini plugins in here. I'm waiting
for the expose when it comes out like mini Anthem
has like 100 plugins. It's a little bit kind
of false advertising, don't you think? Like mini?
I'm just throwing it out there. Yeah. I've been
trying to get him to do an interview, but it's
tough. I want to ask him a lot of questions.
Do you use mini .files? I do use mini .files.
I guess this is the mini .pick, mini .files.
I'm a big fan. I like that. I like Evgeny's kind
of design philosophy with mini .envim that each
of these are, each one is an individual file,
right? Like that's it. There's no dependencies.
Like it's a very simple, it's very easy to read
and understand if you want to see what's going
on under the hood. Some of them are pretty big.
The last time I looked at mini .pic, I think
it was over a thousand lines long, and I wouldn't
be surprised if it's gotten even bigger since
then. But I'm always trying to delete plugins.
Anytime I have the chance to delete a plugin,
unironically, a lot of my motivation for PRs
and work that I've done with NeoVim has been
adding defaults so that I can delete a plugin.
Just because I kind of view plugins as like,
you know. I don't know. It's like almost a form
of like people dead or something. It's like dependencies.
I don't like having dependencies, I guess. So
these are the ones that I use. But what I also
like, if having many in here is cheating, the
fact that I also have like... How many files
do I have in this directory? Okay, I have like
several. So I mean, I have like a bajillion of
my own custom stuff in here, right? And this
is where I think... what I do really starts to
deviate from your average native user because
almost... How good is my script? Almost none
of this is... Let's see. Can I do this from memory?
No. I don't remember the syntax off the top of
my head, but... Oh, I can do this, I think. Right?
I'm trying to find how much of the hair is Lua.
It's very little, is the point I'm trying to
make. Almost everything that I have in here is
a fennel. So just as you're looking in the plugin
directory, you can see a lot of it is fennel.
What is that fennel? Oh, the emaxers are going
to like this. The emaxers... Fennel is a lisp
that compiles into Lua. So this is when I configure
NeoBIM, this is what it looks like for me. No
syntax highlighting, and it's all lisp. So, yeah.
This is where the Emacs people and I are spiritually
aligned, because when I discovered Lisp, I don't
know why, but it just clipped me so well, and
I just loved it. DT, we can convert him. Well,
I was thinking, we're getting Josh back in. Maybe
he didn't know last time. He didn't know he could
still write Lisp and be in NeoVim. So the way
that I have this configured is... What I like
about it is I can write a Fennel file in any
location that a Lua file works, and it just kind
of works magically. The way that it happens under
the hood is I have a tiny little bit of Lua code
that sets up an auto -commuter, which is like
an event handler for people that aren't familiar
with Vim. And then anytime that I write a Fennel
file in one of these special locations, under
the hood, it gets automatically ahead of time
compiled into Lua and then set written to a separate
directory. Neo4j's runtime path, so that when
NeoMimp starts, it actually is still loading
Lua files. But all the source code, so to speak,
is all on Fennel. And is there a reason for that?
Is it performance -related, or is it just because
you like writing Lisp? A reason for using Fennel
over Lua? Yep. Oh, I don't particularly like
Lua. Well, I should say, I think Lua... I have
mixed feelings about Lua's better way to say
that. I think aesthetically, Lua is super ugly.
I hate looking at Lua. I don't particularly like
enjoying Lua. I feel the same way. Yeah, I think
Lua is an excellent example. Get a better color
scheme, Greg. That's fair. I know why he likes
Lua more than Lua. Because when everything is
a parenthesis, it makes... things so much easier.
You never have to worry about punctuation. Yeah,
and I have one of the plugins that I wrote and
that I still maintain is a Parmper plugin, which
Lisp users are probably familiar with that. But
that makes writing Lisp in here so much easier
because like, let's see if I can demonstrate
this. But like, as I write, you can see the parentheses
are auto -completed and are not only auto -completed,
but like auto -adjusted. I'm just writing random
crap here. You know what would make writing Lisp
super nice? Writing it in a Lisp environment.
That's what I was going to ask, Gregory. Maybe
NeoVim is not the answer for you. Well, I will
talk about that when the time comes, but I do
have another... I do have this plug -in Fennel
REPL, which kind of Great. It's not anywhere
close to Emacs. I'm not claiming that it is,
but it does give you that interactive. So this
lets you like interact with NeoVM and it kind
of turns NeoVM into a funnel interpreter. So
it kind of gives you the little bit of the itch
that Emacs does. And there are other plugins
that do this too, right? Like mine is not the
only one. It's just I have, when it comes to
stuff like this that I do for fun, I have like
severe NIH syndrome and I like just, I like doing
this for fun, right? So it's like, I like to
do it myself and see if I can do it in a way
that's simpler and fewer lines of code. How many
hours do you say you put into your NeoVim configuration
and tinkering with NeoVim and all that? Has it
been years of playing around? Yeah, it's over
the course of many years. I actually don't change
it much anymore. What happens is I'll just be
using it to, like, do my day job or whatever,
right? Or to, like, fix some bug in the event.
And they'll be like, I wish I could do this,
right? Like, just recently, an example of this
is at work, we use TypeScript. And I was working
with a TypeScript file, and I used the TypeScript
language server in LSP, and it works really well.
But it doesn't integrate with Herdier, which
is, like, the JavaScript or TypeScript formatting
tool. So I was like, okay, I'll just write a
little snippet of Fennel that when I open a TypeScript
file, it will traverse the file structure, find
the prettier RC file if there is one, and if
there is, automatically set the formatting program.
Stuff like that. I was like, this is useful to
me, so I just sat down and wrote that. So that's
how this file was born, for instance. So now
when I open up a TypeScript file, and there's
a prettier RC somewhere in the file structure,
it sets the format program options so that I
can auto -format TypeScript files. So it's stuff
like that. It's like, okay, I have this need
to do something, and I just write the code to
do it. And to me, this is what makes both Neoven
and Enacs, too. like this is what's so addicting
about these these editors is that they're fully
scriptable right like i know tj is coined the
term like your your personal development environment
and i 100 agree that's like why people i think
i think that's why people get intimidated by
them and also why people are so addicted to them
right it's because once you kind of once you
kind of break through the initial pain and get
over the initial learning curve And you figure
out, you learn how to make it effortless to just
adapt this tool to fit you like a perfect glove.
Why would you ever use anything else? Nothing
beats that. Stuff like that has just accumulated
over years and years and years of using this
tool. And that's how all these files come from.
I have my own grep implementation that I wrote
that's asynchronous because the built -in grep
is... To be frank... It needs to be replaced,
but that's a really big project, so I haven't
done it yet. So, like, if I just do this, then,
I mean, that was... Granted, this is a small
repo, so it was going to be fast no matter what.
But, like, in a huge repo, like the Linux kernel
or something, if you run grep synchronously,
you're going to be sitting there waiting for
a very long time. Whereas if you run it asynchronously,
and, okay, until then, you can kind of stream
in a result as they come in. So it's just stuff
like that, right? It's just very much like a
build your own tools kind of situation. Okay.
Okay. Awesome. Now, let's try with one of the
Emacs guys now. Who wants to go first? DT? You
want to go first? Sure. All right. Let's go.
Let's see what you have. So my stuff doesn't
change all that often because over the years
I've gotten things to the point where I don't
really configure much. Like my Emacs config.
If I zoom in. You had to show the very old font
size, right? You had to do it. Myconfig .org,
those 1100 lines, a little more than 1100 lines,
but it is. But because I'm a content creator,
I don't create my configs necessarily for me.
And this is the same for everything I do. My
shell configs, my window manager configs, like
with Xmonad and Qtel, my configs are massive.
And that's because I put them out there mainly
for documentation for other people. I could easily
remove half the stuff from my Emacs config and
be fine. So that's one thing. As far as for people
that are... New to Emacs, you mentioned the variable
font sizes. One thing that many people are confused
with, if they're not familiar with what Emacs
is, many people assume it's a terminal because
it's all text -based. But it's not really. It's
actually a graphical program. It's actually a
GTK program. And it is mostly text -based, but
because it's a GTK program, I can get images
in it. I could go to a website right now if I
wanted to. There's a built -in web browser. called
EWW here, and I could go to my website, which
I never update, but here is distro .tube, and
you see I get images, right? Any images I would
have had on the page would have come up just
because that's the nature of Emacs. So you get
variable font sizes and cool Unicode symbols
and images. I can use this as a PDF reader, for
example, because, again, graphical application.
If you're stuck in a TTY, like you don't have
a... X server or Wayland server, and you were
stuck in the TTY, you can launch Emacs inside
a terminal. You're not going to get any graphical
stuff, obviously, without a graphical server
running, but you can run Emacs in the terminal.
That's not typically what people are trying to
do. They're trying to use the real Emacs, which
is the graphical program. Now, why Emacs over
something like Vim or NeoVim? I often use NeoVim
on my videos, like when I'm doing things like
with Teaching people certain shell commands.
I just pull up a terminal and I launch NeoVim.
Why do I do that? People often ask. They'll see
me using Emacs on one video and NeoVim on another.
If I just used Emacs all the time for everything,
all the questions I would ever get are Emacs
related. People just, hey, what's that program
you just launched? I don't want to be pushing
Emacs on everybody. I'd like to show them a little
bit of everything. But the difference between
Emacs and NeoVim really is Emacs is its own self
-hosting environment because Emacs is really
a programming language, Emacs Lisp, and it's
an interpreter for that language. It's not really
a text editor. Like, yeah, I can edit text in
this thing if I want to, but it's really a programming
language and an interpreter, and any program
you write using that language, Emacs interprets
it. And we've got a million things. Like I could
launch this here. This looks like a terminal.
It's actually the E -Shell. It's an Emacs window
that's the E -Shell. It's an Emacs shell written
in Emacs Lisp. It's not Bash. It's not Phish,
right? You would think it's running like a standard
Unix -like shell. But it's its own unique shell.
And the cool thing about Emacs, when you write
these Emacs Lisp programs, is Emacs is cross
-platform, so it works on Windows, Mac, and Linux.
So you could actually use the E shell on Windows,
where you might have a problem running the fish
shell on Windows, for example, inside Emacs.
Or man pages, right? I can actually run a man
command here and get a man page for something.
For example, maybe I want to read the man page
for LS. But you would have to have the man database
on a system, which for people running, A Unix
-like operating system would be fine. But we
have this really cool alternative in Emacs called
Woman. So you get a woman page, and I could actually
read this. Because this is not dependent on a
man database, it ships its own kind of database.
Everything's written in Emacs Lisp with woman
pages. You would get woman pages on a Windows
machine, too, if you used Emacs, where obviously
you're not going to have the man pages available
to you. It's just a different way to do things.
Also, you know, with the way NeoVim or Vim or
any terminal -based editor works is you open
a terminal and then you do something with that
terminal. I don't know. Open my bash RC here,
and this is NeoVim. Even though I typed Vim,
it's an alias for NeoVim. And, you know, you
do what you do. Then you get back out to the
shell. And the problem is you don't. Anything
I do in the shell, like I run some commands in
the shell or whatever, inside Vim or NeoVim,
you have buffers. But those buffers are for when
you're inside NeoVim. Well, when I get back out
to the shell and go back into NeoVim, this LS
command or whatever it is, it's not part of the
buffers, right? But in Emacs, you start by launching
Emacs, and you literally do everything from that
point inside Emacs, and everything you do is
an Emacs buffer. It doesn't matter what I do.
I open a terminal. I've run HTOP inside that
terminal inside Emacs. I do the web browser.
I do the maggot get client, whatever it is. And,
you know, I'll have 100 buffers open at some
point, maybe 200, you know, if I never close
any of them, which many people that use Emacs
typically don't really like ever kill their buffers.
So you'll have hundreds of them open. So you
can quickly switch between them. So it's a different
kind of workflow that confuses people when they
switch, especially from Vim to Emacs, because
they're so used to opening that terminal for
everything. And then it confuses them because
they don't really need a terminal for Emacs,
but they need terminal for other things. And
while in Emacs, you have the terminal inside
Emacs, where in Vim, Vim runs inside the terminal.
So it's like everything's kind of turned on its
head and it really confuses people's brain when
they switch. Yeah, definitely. Awesome. Thanks,
DT. Now, let's jump to Niobe. So we go one -on
-one. DJ. Sure. That sounds good. All right.
I mean, Greg showed like a lot of... Good stuff
throughout NeoVim. Obviously, it's got all the
stuff you expect these days, like LSP and TreeSitter
and stuff like that. We do actually have terminal
inside of NeoVim here, too. So we can run terminal
inside NeoVim, and this is just a regular NeoVim
buffer. So if I wanted to block select or something,
I can still do that. So that's nice. How do you
do that? What? How do you do that? You just run
terminal. Oh, okay. We put the name of our company
in there. No, I'm just kidding. And you can select
text like in a NeoVim buffer, right? Yeah, so
it has terminal mode where you type stuff. I'm
just typing stuff. But then when I escape out,
now I'm in normal mode again. So I can navigate
around just like I would modally, generally speaking.
These are just tabs inside of one NeoVim. instance.
That's actually how I do pretty much all of my
dev stuff. I don't have anything against Tmux
or something. I know there's some people that
have vendettas against multiplexers and stuff,
but I just never needed it. When I started writing
code, I started basically with NeoVim when it
was first coming out, and I was like, this is
really cool. It blew my mind. You could write
code and change what your editor was doing, and
I was scared of the parentheses in Lisp. oh that's
an overrated concern guys you don't need to be
worried about it's the same number of parentheses
okay so think about it okay it's the same number
so that was not a good reason not to do it but
um but yeah so i just never really got started
on tmux and so i just started using like the
terminal inside of neovim so that's how i've
pretty much always done it but it is kind of
like it's backwards for how a lot of people use
use NeoVim. But I like that I can script it.
I can send stuff if I need to to the terminal
and do all the other stuff, which I'm sure a
bunch of Emacsers also like, that you can, oh,
I'm going to highlight this and send it over
to this, or I'm going to pipe that command back
into an output or whatever. I think all those
are fun. Yeah, go ahead. Just a question. Now,
you mentioned Tmux, right? But the reason I use
Tmux is Prime, because I watched this video.
How he was using TMAX, I didn't even know how
to use TMAX, only in remote servers. But the
way he uses it to switch sessions, right? With
that shortcut, I just jumped to the sessions.
How do you navigate between different projects?
I've got nine desktops right here. I'll just
have a different, I just have them stay. This
is my desktop, I leave it on forever. So like,
if I'm working on something, I just leave it
on whatever number it is. I'll leave it on number
four. but i got a different project on on number
four just hanging out there waiting for me to
come back to it another terminal instance yeah
yeah i just opened up another like i'll just
you know if i was like oh i want to go work on
another project i'll just open a new ghosty shout
out ghosty right i i you know maybe i go and
i open this up and now i'm now i'm editing my
elixir project right so like now now whoops now
i'm here on like router so i'm just doing this
yeah we can do that that's fine right and then
uh like then i'm done with that one i'll just
go back to here so i just switched i switched
desktops okay and do you keep track of okay i
keep this project always in desktop one no because
i don't switch projects like every two minutes
so it doesn't bother me like i work on a project
mostly for like a day or a few hours right so
it's like i mean i usually can kind of remember
because it's like not i don't have that many
projects happening at once but yeah and then
i also like that because if i want to open like
the browser for this one and i have you know
of course 37 tabs as software developers tend
to do right like then i they're all grouped with
the same neovim like session right so yeah so
it's like that's so that's for me that's kind
of the workflow that i do for those and then
like i said so i do all i like you know i open
up my terminal inside of here if i want to do
like random git commands or i want to check something
or i want to grep or whatever i'll just do that
all all here you know what i mean i can i need
to do something with it i can grab them and paste
it or whatever so so we we do we do have that
going on so i don't know if any maxers out there
didn't know that you know we're giving a shot
so but the the thing that i wanted to show that's
kind of funny um i mean we've got all the fun
stuff i i know that um i think i forgot which
is it just theme is it oh it's I copied Ivy.
Here you go. If you're missing Ivy, I wrote Telescope
a long time ago. Other people have been working
on it. I haven't done very much with it in a
long time. For me, it's finished software. I
haven't changed it in forever. I stole some Ivy
ideas, too, so if you like that. Ivy comes from
Emacs? Emacs, yeah. It's a completion framework.
Yeah, so Telescope has ways of doing different
themes. Like, this is the same fuzzy finder,
but it's just different themes of, like, ways
of presenting it. These are NeoVim, like, real
NeoVim buffers. This is all inside of NeoVim,
right? Like, to get proper highlighting. And
you can... I'm scrolling with my mouse wheel
right now, in case that's cool. Like, all that
good stuff, right? And you can do those. And
then it has it for, like, everything. If I, you
know, call a function that doesn't exist, we
could do, like, Telescope diagnostics, and it
will... You'll find that you can search for all
of the things that you have in your project and
jump between them and do all that good stuff,
too. So it's a generic Fuzzy Finder like experience.
Right. You can pipe anything into it and people
do that. But the thing that I kind of wanted
to show just as like a fun, a fun like thing
of I feel like this is something I'm waiting
after I do this. I know someone's going to make
this package in Emacs. OK, so I'm giving away
competitive advantage here. OK, this is this
is new tech. I can't decide if this project is
actually a joke or not. It's just kind of a funny
idea that I had a little bit ago, which is like,
I have a dynamic environment, right? I can like
execute Lua files. Like LLMs can produce code.
We can save the code when they're done. So what
if we did something where we basically make like
a Lua module? In this case, I have this Lua module.
And anytime I call it with like the name of a
function that like exists already. So I have
examples and I have add numbers here, right?
and it has a bunch of random stuff in here, not
too important what's going on, then it will just
call this function. So if I call, if I execute
this file here, oh, that's, sorry, that's for
later. I got to comment that part out. That was
cheating. We'll come back to that. If we print
calling adding these numbers, right, it'll just
print 15. Like, no surprise. That's because there's
real code there. We don't have to, we're not
asking any LLMs what 5 plus 10 is. We asked it
to write code that would take in these arguments,
right? And so if I go to my Lua code here and
I delete add numbers like this, I think it's
going to say, oh, I'm going to generate a new
function. It's calling to an LLM. It just asked
Anthropic to write a new file. And now it saved
it. And now it's there. It keeps the history
because what you can also do is you could say
something like this where you say, hey, I want
to improve this example of add numbers. It should
optionally include like a middle. Which I think
this still works. I actually don't remember.
I didn't check this. I was on a plane, okay?
Okay, that part didn't work. The improve part
didn't work. I don't know. I'll have to go back
and check that part later. But there is a way
to iterate on the LLM's answers. So if it does
something you don't want it to do, then you can
ask it again. So if we do something that said,
like, X, make a cool floating window. and then
i pass the things like uh yeah that's good title
hello world 2 file type yeah sure why not we'll
do this it says i don't have this function right
now it's going to ask claude give me give me
that function and it's going to generate a bunch
of lua code And then, oh, please. No, it didn't
work. Oh, it did work. It did, it did, it did.
I forgot to press enter. There you go. And it
changed the background color to green, right?
So it changed everything and it wrote the code
for me. So I have the most dynamic editor of
all time. I can communicate to it in English
and it will make the functions for me. And it
will do like insane stuff. I asked it to do one
where it said, generate a dad joke in place in
a floating window. And it, it actually goes uh
whoops i hope i got yeah here you go what did
the drummer name her twin daughters and a one
and a two great joke it wrote a curl request
to an actual dad joke api pipes it in and gets
it back so that was from the llm so i said i
wanted a dad joke in a floating window and it
did that um so anyways that was the That was
just sort of the fun thing that I wanted to show.
I think it's kind of fun thinking about the editor
as this really dynamic experience and being able
to do very goofy stuff like this where it's a
solved problem. Someone's done this already.
Someone's written code to make a pop -up window.
It's been done. Even if you can't remember exactly
which things it is, it's been done. So just ask
the LLM. They'll just put it in there. You can
check it if you like it. You can edit it. You
can do whatever you want. And then you can iterate
on it. So there you go. So that's my NeoVim demo
for you. Awesome. How did you do the autocomplete
of stuff there? Was that Copilot? That's SuperMaven.
I mean, it's like an alternative to that, yeah.
Is it good? SuperMaven guys are cool, yeah. yeah
i was gonna ask tj was that dwm for your window
manager i'm using awesome wm awesome wm okay
yeah i i literally like i only picked it because
like well i already know lewis so that's fine
makes sense yeah i don't have a lot going on
with it um but yeah the only things that i've
done that are kind of like some goofy stuff is
like write random things mostly for stream that
are like kind of hyper specific to like load
these three things put this here make it in a
floating window put it floating on top i press
it again it makes it disappear you know like
that kind of stuff um otherwise i'd probably
be fine like with something much simpler uh like
i was actually yeah why i was asking is like
it's kind of surprised me if you were on dwm
because Why not awesome? You'd probably like
it a lot better. Yeah, it's nice. Awesome is
a good experience. Am I the only macOS user here,
Greg? What are you on? I'm using a Mac too. I
do use Linux at work, but I just use GNOME. I
don't do anything fancy there. Honestly, I think
Neobim consumes all of my config tweaking budget.
I have no desire to do any more beyond that anymore.
What is that ball? Well, this is technology that
you use if you're expecting that you might get
a raid from the primogen. You have to have a
yoga ball to bounce on. Is that his ball? I don't
think it's the same one. If you're looking for
something very funny about that, though, you
can check out balls .yoga. That's a website.
But is it real? Is it a real website? You can't
actually buy them, although we may do that at
some point. But we did it as kind of a joke as
part of this advertisement thing for a hackathon.
And we couldn't believe that balls .yoga was
available to buy. So we bought balls .yoga and
put a fake shop up with... Well, here, I can
show it. The best part of the site is definitely
the... All the yoga balls of Prime being sold
out everywhere. In random situations. You would
sell them. I think you would sell them. The main
problem is fulfilling them. That's the difficulty.
Physical products are very hard. NFTs, we need
an NFT collection for Prime's yoga balls. Okay,
awesome. the last emacs demo what do you got
for us josh i guess the question would be better
like how do i not use emacs i guess because i
essentially use emacs for everything except for
a web browser a video editor and if there's anything
text related i'm like how can i do it in emacs
now hold on so i talked to the kitty terminal
creator kovid he has like a Browser in the terminal.
He's working on a variable font size protocol
for Kitty. So he's kind of recreating Emacs,
but in the terminal. He does everything in the
terminal. So it's kind of possible, you know.
But yeah, go on. Sorry. He's calling you out
right now, Josh. No, I mean. You're not hardcore
enough. It is. Just a quick question. I can't
actually hear Josh now. Oh. Can you hear me?
I can hear him. Yeah, you guys can. I can't,
but I can hear all of y 'all. Yeah, it's weird.
I could hear him earlier. Oh, what if you refresh
the page, DT? Yeah, I'll try that. And let us
know. Let us know if it... Yeah, just let me
know. The issue is the modern JavaScript web,
right? So that's why I have to use like a Firefox
or like a Chrome or something like that. Otherwise,
I would use EWW like DT over there. If there's
a text workflow that I experience, I'm like,
how can I do this in Emacs? Let's see some. Show
me. DT showed a literate config for his Emacs.
This is mine. I have 2 ,000 lines. When I blow
this whole thing up, There you go. 2 ,000 lines
long for that's my config. The thing that I'm
really working on recently is actually switching
to NixOS. So what I did was I literally configged
in literally one file my entire infrastructure
of all my computers, my servers, my desktop,
my laptops, everything in one file. And then
that is... blown out into all the other files
here. But this is literally the infrastructure
of my entire computing environment. So that was
nice. What else did I do in Emacs? I wrote a
book in Emacs. So I used org mode to write a
book, export it to PDF via LaTeX. As you can
see, the LaTeX header is up here. So that was
my book. What else did I do here? You know what?
I'm going to send Christian an email here. From
Emacs. You should use Emacs. Hey, man. You should
use Emacs. And I'm going to... go ahead sorry
do you use it or it's just to show off right
now and when no one's looking around you use
a real email client that no no i actually i i
literally for all my personal email i use this
as my my email client so this is mu4e i uh i
love it the uh the thing i'll do here too christian
is i'm going to use mx spook so it's going to
attach a bunch of uh nsa alerting uh words to
our to my email so when and this isn't this is
a native built -in function of emacs in that
uh so when i send this email to you it's going
to alert the nsa of all these different words
and uh it's gonna Mark our conversations for
future reference. So I'm just going to send that
to you right now. Then they can store it for
you. That's nice. That's convenient. You can
just come back for it later. And I stay as email
backup. Oh, guys, I lost my conversation with
Link. Can you guys hit me back up with that?
I do not remember what we were typing. So what
else do I do in Emacs? I mean, I play my music
in Emacs. So I was listening to some Aerosmith.
So I got some on Ems. I'm listening to music
in Emacs here. oh what else i don't know i i
literally i program in emacs so here's my go
api that i was working on earlier today uh back
end front end whatever you can even do database
client inside emacs i actually use um rest client
these are not these are not live secrets so don't
worry about it but uh i can literally send rest
requests using rest sorry rest client mode so
if i want to send a request when I'm testing
an API or something like that. I just use Emacs.
I don't need Postman or some proprietary garbage
like that. There's a plug -in. But hey, Postman
had Ryan Reynolds come to their conference, dude.
I mean, they're pretty cool, okay? I'm not cool,
so I use Emacs. Yeah, there's coolal at that
end of him, as YSOserious said in the comments.
That allows you to do that as well. The Emacs
email client, the MU4E, for those of you wondering,
it is very nice. You would use it all the time.
I don't use it, not because it's not good. It's
just because when I'm in Emacs and I'm recording
my desktop a lot in Emacs, people don't need
all my personal emails or my addresses because
then you get all the trolls. Amazon shipment
sent to. I asked Christian if I could send him
an email to that one. It's a publicly available
email. Not as private. I've been docked already,
so my address is not a problem. If there's something
that I can't do in Emacs, I think of a way to
build it in. I actually built a launcher inside
Emacs that literally will launch programs, find
files, whatever. um i actually i'm gonna probably
package this out to melpa it'll be the first
package i've ever built so uh i'm not a maintainer
or anything of emacs but i'm gonna maybe put
my hat in the ring of throwing out a a uh an
emacs plug in there um i've done something similar
with emacs making it a run launcher where it
was very similar to rophy or dmenu it's just
small window that was just the mini buffer that
i could search the programs The only thing about
Emacs is that it's single threaded. So this is,
I will concede here. They're working on it though.
They're working on it. I know. I can't wait till
it's multi -threaded because my goodness, like
asynchronous inside Emacs. But yeah, so if you
have something hanging a thread, you're SOL.
So that's the only issue that I have with it.
It's really the only issue preventing it from
being a window manager too is the fact that it's
not. if it was multi -threaded then yeah yeah
i just launched emacs and that would be it and
what is the only reason zero what issues have
you experienced because of the single threaded
so if you're running like a big just a big project
or something like that and it hangs uh or if
you have a crash like for example if i'm using
that as my launcher and i run a uh firefox window
from it the firefox window crashes when emacs
crashes so everything crashes the whole server
exactly so it's all reliant on that instance
of emacs um it's why exwm is it's something i've
thought about running but at the same time the
issue with it is that i don't want my window
manager to be single threaded it's a problem
because i tried ex exwm for a little while and
like doing things like video editing or anything
that's really kind of resource intensive as soon
as that that crashes the whole window manager
crashes and everything you had going on it's
a it's a pain yeah it's not worth it yeah i so
i'm i'm waiting for i don't know i know what's
in the pipeline i know multi -threading is they've
built in uh there's asynchronous functions and
stuff that you can run and i do know that native
compilation also sped up a lot of the the threading
but i i know that they're It's coming down the
pipeline by much smarter people than me. Do you
do something outside Emacs, Josh? What does Emacs
not allow you to do? Browse the web, edit video,
edit photos. There is a video editor in Emacs.
I actually did a search for it one day because
somebody sent me a message. Hey, you know, there's
a Emacs program, a video editor that's written
in Emacs list. It's like, there's no way. I went
and found it. And I installed it, and it's very,
very, very basic. But you can actually do some
really simple video editing in Emacs if you wanted
to. You'd be insane, but you could do it. You
could use FFmpeg. You could do everything in
FFmpeg if you really, really wanted to. And,
I mean, that would be something. I was really
hoping you were going to say. Edit videos, edit
music, edit text. Those are all the things that
I don't do inside Emacs. It's essentially my
computer. We do have good multimedia stuff, though.
He mentioned the multimedia player. I'm assuming
you were using EMMS for playing your audio. That's
what I used to. Also, there's radio streaming
plugins also for Emacs. You can do all your...
audio music in it. And what do you guys think
about the opposite tool? The guys that are on
the Neovim side. Let's go with Greg. What do
you think about Emacs? Greg, what's your experience?
Have you used it? What are your thoughts? My
thoughts on Emacs are, I think it's great. I
think it's a great tool. Like everything Josh
just showed, I'm like, I'm honestly impressed
that I'm not sitting here sneering like, oh,
what do we do? Like, no, I'm like, I think that's
serious. It's so cool. I think treating Emacs
as a platform that you can build on and having
that scriptable environment, it's very much a
live environment, is amazing. I have tried Emacs.
So I started with them. Honestly, I don't even
remember, honestly, how I first started them.
It's so long ago now. But whenever that was,
if I had stumbled on Emacs instead. it's very
likely I could be on the other side of this conversation
today. But I tried Emacs after having used Vim
full -time for five or so years. And it was mostly
out of curiosity. I just want to see what this
tool is like. I hear so much about it. And I
probably read some blog posts or something. And
I spent a good amount of time reading through
the info pages, the basic stuff. how to navigate
with Emacs, kind of like, you know, just really
spending time with it. I was never able to get
it to stick. And I really did try it. I made
multiple different attempts to really kind of
get it to Emacs and be an Emacs person. I think
for me, the difficulty was, so a lot of people,
even in the event today, there's going to be
some irony here. And that's what I'm like, pretty
much going to address the irony. is people today
have this fear of NeoVM that's extremely complicated.
I think there's a reputation that NeoVM is really
hard or you have to install one of these distros
or something to get started with it because how
do you can work functional and working? You have
to install a thousand plugins. I do want to unequivocally
say that is not true. And this is a sub -box
of mine. You could install NeoVM totally basic,
out of the box, and have... extremely useful
editor with almost zero configuration. But that's
not the point I'm going to make. The point is
that people talk about how hard it is to get
into Neon Man and whether they should crack their
own config and take the time to learn it or just
take an off -the -shelf distro. And I'm very
much on the side of I know it's painful, but
you should absolutely do it the hard way. Spend
time with it. Start with nothing. And then only
as you say, okay, I'm hitting a limitation, go
out and add a plugin, add a key map or whatever,
right? But take the default as far as you can
first. I understand people are busy. People just
want to get stuff done and they don't have time
for that. But that's my advice. That's what I
encourage users to do. Now, I think my difficulty
with Emacs is I was not able to follow. My own
advice with Emacs, right? Emacs, I think, is
like Vim and NeoVim, where out of the box, it's
an extremely capable editor, but it has quirks,
right? It's old. It's been around for a long
time, just like Vim has. It has all these kind
of weird legacy design decisions that can't be
changed now because it would cause spacebar heating
for somebody, to quote the XKCD comic. So experienced
users of both NeoVim and Vim and Emacs like...
learn to live with this and it's not a problem
for them. But for new people, they run into this.
And so there are a lot of paper cuts, time to
kind of do things from scratch. And I just could
not... I would try to use Emacs basic and I'd
be like, okay, I have to change this one setting.
This is just not working for me. And then I'd
be like, I have to change the other setting.
And then before I know it, I'm spending all this
time writing all these different files. And then
I'm like... okay, now I do install plugins. How
do I install plugins? And it gets overwhelming.
And I'm like, okay, let me just try it. I'll
just try it. So I try like doobie max. I thought
it was great. I was like, this is really cool.
But then I run into the same problem. And it's
exactly why I don't advise people to do this
for NeoVM is that when you are using someone
else's config or using their design decisions
or use it, we talked earlier about how these
tools are so powerful because you craft them
to fit like your hand like a glove, right? when
you use these off -the -shelf distros, you're
wearing someone else's glove, which is not necessarily
bad. Like a lot of these popular distros are
popular for a reason. But you end up having to
learn the tool itself and also learn the distro
and like the designs they chose. And anytime
you run into something, it's like, is this a
D -Max thing or is this a Doom D -Max thing,
right? Is this a minimum thing or is this a lazy,
you know, dot infinite thing? So that was kind
of my experience with it. I did try multiple
times. And I thought it was great. I could definitely
see the potential. I was like, I really want
to like this. I thought org mode was super cool.
I literally sat down at one point and just watched
a lecture on org mode. I was like, I want to
understand why people won't shut up about this.
Why is it so cool? And I see the appeal. And
actually, I wrote a little BIM plugin that kind
of... I mean, it's like the most basic part of
org mode where you can do some really primitive,
literate programming and markdown files. I felt
like this is just a really cool ability to do
something like this. So I 100 % see the appeal,
but I think by the time I approached Emacs, I
was already just so then killed that moving was
going to be really difficult. But I definitely
took a lot of inspiration from Emacs, as you
saw with the list. I do think that NeoVim has
kind of bridged the gap in a sense between...
legacy Vim and Emacs, right? Emacs has always
been extremely scriptable. It's a platform that
you can control. And I think YoVim has really
brought that paradigm to the Vim world a lot
more. They seem to be converging. There does
seem to be some convergence, for sure. Yeah,
I guess to paraphrase, I have nothing but respect
for Emacs users, right? I feel like in the world
of VS... and Cursor and Windsor or whatever,
right? Like we're like, we're like holding on
to our, our 40 year old tools. Like you can take
these out of my dead hands, right? So there's
like a little bit of a camaraderie there. But
I do think like NeoVim users and Emacs users,
right? The reason they're so sometimes obnoxious
about why they love their tools so much is because
they have, they've experienced that, the power
of customizability, right? And once you get a
taste of that. Yeah. Yeah. You can't give that
up, you know? Yeah, definitely. That's why, I
don't know, there's only two editors, two real
editors out there. There's a lot more out there.
You always censor that word, right? Teach, I'll
try to censor it as well. It's a family -friendly
stream, Link. Why are you cursing on stream?
Please, dude, come on. And let's go with one
of the Emacs guys. wants to go dt what are your
thoughts on the other tool neovim it's fine i
mean i use it i mean it's it's fine uh where
i will uh mention you know where they differ
neovim has much better defaults than emacs one
of the biggest complaints about emacs as far
as growing a user base is it has horrible defaults
out of the box because it is not configured in
any sensible way you get this very ugly white
window with black text it's really small it does
have menu bars and you know a menu system but
it obviously you have to deal with the emacs
key bindings if you're not familiar with the
emacs style key chords it is really challenging
for a new user to jump into that thing so i feel
like Vim and NeoVim are a little easier to get
into, especially you've got the Vim Tutor to
accompany you along the way. I feel like anybody
can be on their way within a couple of hours
with Vim to where they're reasonably comfortable
opening a file, closing a file, making basic
changes to a text file. It's not much of a problem
where Emacs is a real investment. The downside
to Emacs, where I think Em and NeoVim really
shine. I also love the Vim key bindings. I cannot
stand the Emacs key cords. And I've tried them
when I first switched to Emacs. You know, I used
it for like a month because I wanted to learn
a lot of the standard Emacs key bindings. I still
remember a lot of them from that experience,
but it hurt my hands. Like I really did have
some hand pain. No lie. It actually, like, that
was the reason to change. Like, I'm going back
to the Vim bindings, so I found evil mode, Doom
Emacs, switched to it, which already had evil
bindings already baked in, and that made a big
difference because all of that Control -C, Control
-S, Control -C, Control -X, that was so bad on
that pinky, right? I couldn't do it. So that's
the... The two areas where I will give Vim slash
NeoVim a lot of credit and Emacs, you know, need
some work in those departments. But other than
that, I've got no real complaints. I think I
use both. I could use I could easily just stop
using Emacs one day and and live in Vim or NeoVim.
The one problem. The one thing I would really
miss is I've become so invested in org mode.
And even though org mode has been around for
more than 20 years now, it is still an Emacs
thing, right? There's plug -ins for other editors,
but just the way that thing was originally designed
and built with all the various functions and
generating tables and spreadsheets and things
like that, really neat stuff. It's hard for other
editors to adopt it and really have like 100%.
compatibility with everything you can do in org
mode that's the one thing where if you get into
org mode you really are kind of locked into emacs
do you do you literally program all of your configs
and everything yes yeah because i think it's
easier when i put it on gitlab it's a lot easier
for folks to read that document as an org document
Then, for example, well, I'm in Qtile for my
window manager to read a Python file. I mean,
they could read the Python code. But when I actually
create a table of contents and an outline and
blocks of code and then, you know, have comments
for each block of code, it makes it so much easier
for somebody, you know, for a noob that maybe
doesn't know any Python. They would understand
that a lot easier. You hopped out of the stream,
but I showed I literally programmed my Nix. OS
config. So essentially all of my infrastructure
is literally one file. Yeah. Yeah. And I've done
some of that before where I've had one literate
config for multiple things. One area, a lot of
people do that with is with websites where you
write a file and you have literate, one literate
config for all the HTML, all the CSS and all
the JavaScript and one file. And it's just, just
this gigantic file, but it's the whole website.
Right. But yeah. uh i'm not much into web development
these days but it becomes i do think there is
a downside to putting too much into one config
i think sometimes you do want to split some of
that stuff up yeah i feel you okay okay and um
what about you teach why your thoughts on emacs
yeah i don't think about emacs I was... I was
waiting a long time to do that one. I was waiting
a long time for that one. That was almost as
good as your dad joke. Thank you, thank you,
thank you. Oh, man. No, my serious answer is
I feel really similar to Greg. I think Neoman
took a lot of inspiration from Emacs of just
saying it's really possible to just do a bunch
of things and have nice things. We can just have
a terminal. Guys, people write terminals. We
can put one in. We can put one in. That's fine.
We don't need to be afraid of those things as
long as you do it in a way where it doesn't basically
start multiplying the weight of maintenance.
Where, oh, we added this thing and this thing
and now it's four times as much instead of twice
as much. So you find a good... terminal library
that you can embed inside of NeoVim that does
most of the work for you, and then you can put
one in and it's not that much work. Similarly
for asynchronous events and an event loop and
stuff, it's like, hey, Node solved this already
with UV, and they have sick bindings. We can
just put this inside of NeoVim and do the same
thing, and it's really good. so like i think
emacs inspired like a lot of stuff um for any
of them and i think there's been a lot of like
mutual uh sort of like pushing each each community
forward like of like oh that was cool that they
did this that was kind of like a twist on our
thing like we'll do this and then kind of like
a nice um you know camaraderie and of course
you know i like i i've never like you know I'm
31. I'm not, you know, I'm not ancient or anything.
Like, I never really felt like any serious, like,
NeoVim or, like, Vim and Emacs beef, like, my
whole life. It always feels like, hey, we've
got some, like, properly open source editors
here and we're, like, fighting against the world,
you know? So it's, like, I always feel like that's
the joke, like, on my stream, why it's, like,
when we go, yeah, VS, like, Microsoft lies about
that being open source. Like, I don't have any
problem with closed source editors, you know
what I'm saying? Like... But, like, Microsoft
is lying about, like, VS Code, right? You know
what I'm saying? Like, they're saying it's open
source, but then that's not true, and they're,
like, putting all this other stuff, and they're
releasing LSPs that can only run inside of Microsoft's
things, and, like, all this, you know, the list
goes on and on. Like, so I'm like, I don't care
if you make a closed -source editor, but, like,
don't lie to me about it. You know what I'm saying?
So, yeah, so I think, like, Emacs and NeoVim
are on the same team. Well, I don't know because
when you say they're on the same team, it's probably
the biggest. software war has been VI versus
Emacs dating back to the late seventies. And
that's been going on 50 years now. So I don't
know. There's maybe a few people, you know, like
how after world war II, they like found some
guys. The neckbeards have almost died out. You're
right. They're still sitting around programming
and Pearl and all. I just don't run into, I don't
run into them that often. Yeah. The ones left
are like 70 already. So yeah. At least. I don't
get online until after their bedtime. You know
what I mean? And then I got to jump pretty soon,
Link, just as a heads up. All right, Teach. No
worries. When you need to go, just drop. What
are your thoughts on the other tool, Josh? I
mean, I use... People are going to hate me for
this, but I use Vim inside Emacs, right? Like,
I use Evilmode. I am an evil user, so I'm a bit
of a traitor from day one. Now, with that being
said, like, you can't run Emacs inside NeoVim,
but you could run Vim inside of Emacs, so. We
can, though, because I can run the terminal version.
Yeah, if you can run, if you can emulate a terminal,
you can type Emacs, the TTY version of Emacs.
You can't get images. Well, no. Greg's done it.
Actually, that's actually false today. Is my
screen share still working? I have to show this
off. The gauntlet has been thrown down. The gauntlet
has been thrown down, so now I have to show this.
So another member of the another NeoVim core
team maintainer wrote this. Sean Dewar. whose
name I've never actually said out loud before,
so I hope I said it right. But he wrote Doom
that runs inside Neodymium. So we're going to
run real Doom inside of Neodymium, inside of
my terminal. Running right now, I don't know
if you guys can see it. I'm not seeing it come
through on the screen share. Yeah, it's not coming
through on the screen share. Did you share an
application or the entire screen? Hold on. There
you go. they are converging i like i will say
emacs and neovim are converging on features and
because i mean you see something cool over here
somebody's gonna write it over here you see something
cool over here somebody's gonna write it over
here so even variable font size like in some
neovim guis oh nice here we go there you go yeah
so i don't actually know how to play doom uh
but Yeah, this is using the Kitty graphics protocol
that Kitty introduced. That's pretty big. And
I'm using a terminal node that supports it. So
this is displaying. I mean, it's pretty smooth
too. Yeah. But I mean, this is obviously kind
of a gimmick. So is Tetris and Emacs. Sean would
totally admit that too. But we definitely have
ambitions. You add image support so that you
can view. Like a really cool thing to be able
to do would be able to have markdown buffer and
then in a split pane have the rendered version,
right? Like you can do in VS Code or Emacs. There's
no reason we can't do that in any of them. The
terminal supports the kitted graphics protocol.
And yeah, the variable font size thing is another
thing that is still really new, but that we want
to support as well for the same idea. So there's
a lot of cool stuff happening. A lot of cool
stuff that's already happened in the last couple
of years with terminals. And that's going to
keep happening too. Shout out to Henrik for Doom
Emacs too, because honestly, Doom Emacs is the
thing that gets people early access to Emacs.
If I didn't have Doom Emacs, I don't think I
would be using Emacs. It would be a much tougher
barrier to entry without it. There's so many
sane defaults that he put into that repository.
that yeah it's insane and i mean he's done a
ton of optimizations too like it's not just um
it's not just like keybinds and stuff like he's
he's literally made things faster so he's he's
done a great job there too and he made it accessible
to the vim user you know thinking thinking about
coming over to emacs so yeah yeah tj you already
have to drop so one last question for you yeah
hit me um What would you recommend someone then?
Someone just starting. Would you recommend them
to go with any of them? They should try both.
They should try both. Distro or no distro? So
I would say if you don't have anyone that you're
friends with that uses one or the other, I think
testing a distro and just being like, oh, this
has features that I like. That's like a good
start. Then you know it's possible to do. like
in the editor then maybe pair that back and try
and build something either from like like i'm
partial to like kickstart or something like this
where it's like small and you can read it all
and you can see um but you know pairing it back
to something where you actually know what like
every line in your config actually does and then
maybe like you know later you could hop to a
distro if you feel like it's a good value prop
for you but it's like I do see a lot of people
who have a lot of pain because they, like, never
bothered to do 10 minutes of reading the docs.
And they never figured out that, like, Vim has
help. And you're like, dude, that's, like, the
key feature. And ChatGPT does not fix your issue.
ChatGPT is actually pretty good. People should
be asking more questions to ChatGPT and, like,
learning how to actually paste and read a whole
error message and response instead of being like,
it didn't solve it in five seconds. Like, I find
it's very good at a lot of those problems because
someone else has already had them. So, like...
ChatGPD is just asking Stack Overflow where the
question's already been answered. Yes, right.
I'm more of not a huge distro fan. At least in
the NeoVim world, I don't know. The Doom one
I hear good things about, so maybe it's different
over there. But it just seems to me to end up
with you never figure out how to actually use
it. and then something goes wrong, and then you're
just mad. For me, I haven't even changed anything
in my NeoVim config for probably six months.
I don't even know if I've done a commit. If I
have, it's literally less than 10 lines, probably.
Literally nothing can break. I'm not even updating
plugins most of the time, or NeoVim most of the
time for that either. If I'm not interested in
getting something, it can't break on me until
I ask it to. But if you're like, oh, it just...
Every time I open NeoVim and auto -updates, it
pulls the latest NeoVim update and pulls the
latest lazy thing. Possibly from the same day.
Nobody's had time to sync those up together.
You're touching a sore spot for me right now,
TJ. I know I am. I know. I'm helping. I'm helping,
Greg. I'm helping. I appreciate it. It grinds
my gears. It grinds my gears and I see people
complain like, oh, NeoVim's breaking all the
time. I'm like, yeah, you're the one that's daily
driving ahead as a master branch, computing your
plugins multiple times a day and you have like
16 different plugins. Your morning routine is
like, I... get the latest neo vim without reading
the changelog yeah and i get the latest version
of my thousand plugins and then crazy since none
of those are actually released they're all just
from git they're not a version they don't work
all the time together yes of course guys so like
so yeah so i think you just end up and that's
a scenario like a lot more often and you get
this feeling of like it never works and you're
like dude you don't have to update anything now
it's okay how often do you update teach well
it just depends like i mean like like lately
because i since i haven't been i for me it's
very different because when i was like actively
doing a lot more neovim stuff it would be like
all the time but that's because i was working
on neovim all the time like with all my free
time and now it's like rarely like once a month
maybe i don't even do that for emacs and all
my emacs programs i update Seriously, I might
update it three or four times in a year. If it's
working, why bother? The only time I update it
is if I need to. If I don't need to, I don't
touch it. Confirm Debian stable user. No. Thanks,
everybody, for having me. Appreciate it. Thanks
for being flexible. See you guys. All right.
What would you recommend, DT, to someone joining?
Like someone new, someone out there that is using
VS Code as their daily driver. And they're like,
oh, I want to try one of these two. What would
you say to them? Well, I have some strong opinions
and I'm going to disagree a little bit with TJ.
I really think they should learn Vim and learn
the Vim bindings. Like the very first thing they
have to learn. I'm coming at this from a Linux
perspective, too. You need to know how to use
Vim. Whether you eventually learn anything about
Emacs anyway, you got to learn Vim. So that's
the number one thing they should do. Once they
know how Vim works, as far as the key bindings
especially, then they can worry about moving
to other editors that also use those bindings.
Awesome. Okay. What about you, Greg? Someone
coming from VS. Yeah, I agree with DT. I think
for any software engineer, knowing how to navigate
each of the basics of BIM is never going to be
a wasted skill. That's always going to come in
handy. If you're moved into a machine that only
has VI, you're going to need to know those bindings.
Yeah. Do a piecemeal, right? If you're a VS Code
user that is comfortable with VS Code and you're
new to BIM Curious, I would say Find ways to
do it in chunks. You can try to switch wholesale,
like whole turkey. That's going to be really
challenging. And you're going to hit a lot of
friction. This is true of any tool, right? Not
just f***ing anything. Making a big switch like
that is going to introduce a lot of friction.
And if you are going into it knowing it's going
to be hard, but you're dedicated to pushing through,
that's great. Most people are not like that,
right? Like most people, especially if this is
like a work context, like most people want to
be productive. So find ways to do it in small
chunks. And don't start Neovan with, like your
Neovan journey or whatever with like 40 plugins,
right? Like start Neovan to edit a file, make
a quick edit. And then start learning, okay,
how do I create some splits? How do I navigate
Windows, right? And just do a little at a time.
I mean, I... I'm proficient in the event. That's
not bragging. That's just a statement of fact.
I've been using them full -time for over a decade
at this point. I did not walk up to a computer
when I was 18 years old and fly around the event.
Nobody does that. It's very much a progression.
I'm sure Emacs people are probably the same.
When you start using Emacs, you're like babies
first. Right. You don't start with the complicated
stuff like macros and substitutions and things.
You just need to know the motion keys at first.
Or maintainer of NeoVim. I'm proficient at NeoVim.
Breaking news. That's biased. And what about
you, Josh? What would you recommend someone?
I wholeheartedly agree with that, but I would
even go one step further. If you are editing
text, On a computer, you should learn Vim. If
you're a writer, you should learn Vim. If you
do anything editing and everybody edits text,
you should learn Vim. Vim is incredible. The
way that modal editing and the, I'll call it
mnemonic editing, like DT to, there you go, shut
out DT, DT to word or whatever. That's incredible.
When you start to see that from a what you see
is what you get editor coming to that, you're
like, it's a revelation. It's completely different.
And it's not just for programming either. He
mentioned his book, just creative writing, because
I've done the same thing. I've written a couple
of books. I write it all in Emacs using them
bindings, the evil bindings. When it's actually
time to format it, then I'll put it into a word
processor. But it's so much easier when you're
writing to use the key bindings, the Vim bindings.
It speeds up the process, especially when you
need to move around large blocks of text. Just
using a standard text editor is much more complicated.
It probably saves me, and this is not a joke,
probably between a day to two days every single
month of work time, I would say. And that's not
an exaggeration, which is insane. I've done some
macros, some pretty complicated macros on things
that literally would have taken me days, if not
weeks, to do the same thing if I didn't have
access to that kind of power that you get in
a VMware Emacs. Yeah, 100%. And I think it's
honestly just starting with Emacs. I think Doom
is a great starting point. that is it's an editor
of a lifetime like when you look at these two
editors you are essentially undergoing this is
a journey for the rest of your computing natural
life right so um you shouldn't be hesitant to
look into either of them try both of them and
just get started with it because it's going to
be the the rest of your computing use of a computer
for the rest of your life you're going to be
using these one one of these two tools if not
you you may not end up on Vim or Emacs down the
road, but yeah, you will definitely come out
of it different. You will view software and computing
in a totally different way. Yeah. It's a paradigm
shift. Like it is a, it's a philosophical, it's
a different way of using a computer than you
have, you know, grown up using, we should have
the sensor button for windows. But you come from
that and you come to this and you're like, they're
not even the same. It's not even the same endeavor.
Yeah. It's pretty tough to go back to something
else after I've used NeoVim. I'm not a developer,
you know, but just for my markdown, my blog post
and all that stuff, if I need to write scripts,
I cannot do it in VS Code. I could, you know,
and I can enable Vim motions, but it just doesn't
feel the same. I don't know. It feels like a
total downgrade, man. I don't know. Yeah. All
right, guys. Really appreciate everyone's time.
Thank you very much. Thanks to all of you. Thanks
for organizing this. I enjoyed the chat. That
was fun. I gotta say, Greg, it's definitely a
thankless job to maintain an open source project.
So that's pretty cool, man. Cool. Oh, thanks.
I mean, you just said, you just, I get, I get
occasionally stuff, you know, people, stuff like
this happens. So it feels a little bit not so
thankless. Yeah. Oh, that's awesome. No, honestly,
it's, I don't think of it as thankless to talk
about this for a second. It's, I think it was
a huge honor, honestly, like to see someone I
really respect is COVID. who Christian just interviewed,
right? Did you watch it? I watched Heart of it,
yeah. I was not a fan. I didn't know too much
about him because you have an image. Did you
have an image before the video? Be honest. And
did it change after it? I mean, I didn't watch
the whole thing. I already know COVID kind of.
I don't know him personally very well, but I've
interacted with him enough between Ghosty and
U of M to already have like, no. his little bit
on his personality. But he's kind of a controversial
person. Are we still recording? Are we still
live right now? Yeah, we're live. Time to take
this private. That's why I was being quiet. Josh,
he's being quiet. We're all like, where's this
going? I'll still say what I was going to say.
I understand he's kind of controversial. He has
some hot takes and opinions, of course. And he's
publicly said, Things that I think were sometimes
rude, for sure, but I also have a ton of respect
for him. He has single -handedly pushed the terminal
ecosystem as a platform. I think even five, ten
years ago, to even say that the terminal is a
platform would have been a joke, right? I don't
think anyone would take that seriously. But COVID
has almost single -handedly solved so many issues
that have been... that have played terminal applications
for years by themselves. I still have a huge
amount of respect for them. Anyway, the only
reason I brought this up is because to hear someone
like that, who I admire and respect, they're
using NeoVim, right? On the Ghostier project,
Mitchell is the chemical lead developer and the
originator of that project. And he uses NeoVim,
right? And another person that I have this enormous
amount of respect for. I have coworkers, right?
They don't know me, right? But they use NeoVim,
right? So being on this team of people that creates
this tool that people love, right? It was like
the top most loved editor in the Stack Overflow
service for multiple years in a row. So that's
a huge honor to me. So I don't think of it as
thankless. I'm just so glad to even be included,
right? To be able to touch this thing that has
an impact on people's lives, I get a lot of affection
out of. It's a big responsibility too, right?
I do take it really seriously when people say
that they updated me and then the stuff breaks,
right? I think we're cheering as a project to
try to be better about that. But it does have
a sense of responsibility that this is an important
part of people's workflows and we need to take
that really seriously. And going back to the
point of COVID as well, you know, I had a, I
don't know, I watched a couple of videos, maybe
because you just watch videos, you just read
a few comments in GitHub, you create an image,
right, of that person. But after the interview,
that completely changed. I'm a fan now, like
full COVID fan, man. I'm a fan too, like I said
earlier. I know I asked why I was kind of hinting
that I was going to talk crap, but I really wasn't.
I had a ton of respect for him. I think every
newbie user owes him a lot, even if they don't
use Kitty. Now, do you know who started the graphics
GPU accelerated terminals? Because I forgot to
ask him that. Was it COVID or was it the alacrity
guys? Do you have an idea? Oh, no, I don't. I
don't know which one. Honestly, I think iTerm
might even be in that discussion, honestly, because
iTerm has been around for a long time, and they
also have UGPU acceleration. I don't know who
was the first to do it, though, to answer your
question. I don't use a Mac, but on Linux, Alacrity
was the first one I remember ever doing that.
I was going to say Alacrity. And now there's
a dozen of them. Okay. Any... Anything else?
Any final words that you guys want to share?
We can do a roundtable if you guys like. That
was a great discussion. There was no throwing
down or anything like that. I do agree with DT.
This is the oldest going battle and it's probably
just because we're not... seven years old that
we're not screaming. We're not invested in it.
Yeah. It's like, it's one thing. It's like, I
was going to say it was different. Obviously
like in the eighties and nineties, people took
that, that editor battle seriously where now
nobody really cares. Let's be honest, you know,
NeoVim, Emacs. Most people are using that editor
that shall not be named. It's really what the,
uh, I don't use it. I've never tried it. I know
nothing about VSBeep, but I'm sure it's fine
too. Yeah. It's like Linux and macOS, you know.
I have been interviewed in Linux channels. UDT,
Brody as well. I don't know. I don't know if
the communities are being brought together as
well in that sense or... i know there's a fight
against windows i don't know why but um they're
strong opinions it's open source versus everyone
really like i think that that at the end of the
day it's open source versus closed source and
i think open source is winning um drastically
yeah yeah i think it's different now because
linux is becoming so much more popular like we're
gaining users at like a crazy pace When I started
using Linux on the desktop, we, we didn't even
have like 1 % market share. They just crossed
five. Yeah. Like it's, it's, it's insane, you
know? And yeah, like we just crossed 2 % probably
five years ago. When you think about that, we
more than double probably in the last, uh, since
the steam deck, you know, became a thing really.
I think that's helped. Yeah. When I started using
Linux 2 .18 % or something. I remember looking
at some stat counter metrics in 2007, 2008, where
it didn't even register. It's less than a percent.
It's just crazy where things are at now. We're
taking all that market share from Windows, by
the way. It's not Mac losing users. It's Windows.
They're all Windows. Mac too. I don't know if
you guys have heard about DHH recently. He switched
to Linux and I think a lot of people are thinking
about it. Have you thought about it, Gregory?
You said that you don't have the time and energy
to invest in the Linux desktop right now, but
have you thought about it? Or you're just like,
I don't care at all. I use Linux on the desktop.
full -time at work. I have a Linux desktop right
here on the ground next to me that I use to play
video games. I would say using, this is not going
to be a popular opinion, but using Linux at work
full -time has made me appreciate my Mac even
more. So, no, I'm fully Mac -filled. I really
like macOS. I appreciate Linux. There are a lot
of parts of it I like, but I, yeah, I'm, I really
like using a Mac. Why? I'll be a Mac user for
life. Yeah. And why is that? Why? Yep. I feel
like for me, macOS strikes the perfect balance
between aesthetics, design, and still has enough
of the positive underbelly foundation to be enough
to let me do all the things that I want to do
on a computer. And it's stable. On these laptops,
the battery life is insane. I don't know if it's
a hardware thing too. This is not necessarily
Linux's fault. But on my work laptop, I have
it unplugged right now. I guarantee you when
I come to work on Monday, it's asleep. It's not
on. It's not charged. On Monday when I come into
work, it's going to be dead. It's going to be
like it's suspended and the battery is still
going to drain and die. On my MacBook, I can
leave this thing off the charger for weeks and
I can just open the lid up and it's still good
to go, right? Like that's, that's huge. This
thing doesn't even have a fan. Like this thing,
like my MacBook will, will turn like crazy. It
has enormous computing power and I never hear
the fan. On my Linux work laptop, the fans never
stop. Like it's stuff like that, right? Like
just the, and then there's like, there's stability
problems, right? Like the audio on Linux is such
a. Yeah, that's definitely a serious issue. I've
never had any audio problems on my Mac. So it's
not like that. I totally understand the people
that like to tinker and want to modify their
system and control their customers. I totally
understand that. And if that's something you
care about, obviously, macOS is not going to
be for you. But for me, I'm at a stage in my
life where it's like, when I get on my computer,
I'm there to do something. I'm there to get something
done. And I just want to open it. out of work,
get whatever it's like I'm doing done and be
done, right? Like if I want to tinker, I have
my gaming computer, right? Like I have that outlet
if I need it. If I just want to dig around, you
know, pardon me. It depends on the type of user
you are too. Like we're all probably the kind
of people we spend most of our time in a terminal,
at the shell, in our text editor of choice, whatever
it happens to be. And the operating system at
that point really doesn't. As long as you can
get to the tools you're using, it doesn't matter.
That's why I don't really hop between Linux distros
anymore. Because it doesn't make any sense that
most of the time I'm spending in the shell, in
the terminal, using the same bash shell with
the same... Core utilities. It doesn't make sense
for me to spend a couple hours hopping from one
distro to the next and then the next day do a
different distro. I'm just hopping for no reason.
I'm just getting the same experience on each
distro. Once you're no longer tied to desktop
environments, like if you're one of these people
that really are invested in menu systems and
things like that, I guess it matters. But for
me, I can't distro hop anymore. It's become a
pointless activity. Yeah. You can start with
Nix Darwin and then you can use NixOS full time.
But how often do you redeploy your computer,
Josh? And be honest, you spent like two months
setting up everything in Nix and you're going
to redeploy your computer every 10 years. So
you just lost a lot of time there. No, no, no,
no, no. I have lots of servers, man. Lots of
servers. You got lots of servers. Because I have
this laptop and I have like three other laptops
at home, right? So it's really nice to be able
to spin up literally the same environment on
all of these different computers in one file.
It's pretty sweet. I'm not going to lie. What
distro did you end up on, DT? Just Arch? Right
now, it started life as Arco Linux probably about
three or four years ago. which Arco is no longer
around, but I haven't really used the Arco repos
in forever. It's essentially my distribution
because I have my own repo of software and packages
I maintain. So it's Arch, but the Arch guys wouldn't
support this thing. Like, hey, what have you
done to this, right? I've got a lot going on.
Of course, I don't go to forums and do support
requests anyway. I take care of my own problems.
I have for years because, you know, the Arch
guys are mean. Yeah, fair enough. It does seem
that everybody essentially ends up at Arch or
Debian, pretty much. It's those two. Yeah, Debian.
I've been thinking about Linux, and I think I
will go with, I don't know, I have no idea. I
want to try Arch just for the sake of trying
it, but I'm more into Debian. That's what I use
in all my servers, Debian, all the time. They're
really stable, man. Yeah, I don't know. You can
use my NixOS configuration. That'll be an experience.
He might prefer something else. Gentoo or Slackware.
That would be. Yeah, I heard those are complicated
to install. I don't want to spend too much time.
They're a little different. Yeah. All right,
guys. Thank you very much. Appreciate everyone's
time. No, thanks to you. Thanks for, all right.
Thank you, Christian. Rescheduling. Appreciate
it. Gregory, Joshua. Nice to meet y 'all.