I look at every issue, I look at every comment
as a learning opportunity. Okay, well, you're
going to be doing gigabytes of learning, because
you don't have any pushback mechanism. I mean,
okay, you're going to be drinking from the fire
hose. Your learning opportunities will be endless.
We have Sybil and Franklin in chat. Have you
seen this guy? Yeah, I like his channel a lot.
Oh, yeah? You've seen him? He's also a philosophical
guy. Yeah. He's into Adderall. He's not into
Adderall. Apparently, he's not in the last few
videos, Sylvan. Are you still into it or not?
Or you haven't decided yet? We had a live stream.
Let me tell you about this. We had a live stream
planned. We joined, all of us, and he never joined.
And I was like, Sylvan, are you joining? He never
joined. That was the day he stopped the Adderall.
Yeah, man. crazy no more adderall he says um
and he got put on a psych ward that day so that's
why he didn't join the live stream i double click
on this see it it opens in kitty in any of them
instance that's what i want ghosty because he's
not giving me this i see they they pretend that
it is possible and i think they're wrong okay
now Now that you mentioned Kitty as well, I had
an interview with COVID. He's the creator of
Kitty. I watched it. Oh, you watched it? What
are your thoughts? Because I had a bad image
on COVID, to be honest, because I don't know
why, you know, just videos that you watch on
the internet and you just follow along. And after
the interview... Oh, because of his comments
on the issue track. Yeah, exactly, because of
that. He's not shy about... He won't just say,
you're wrong, but he'll say, you should feel
bad. I don't know if that's true. I'm spreading
misinformation, but he's not shy about adding
a little spice to... i'm not like trying to bling
out my shell so that it has like all these colors
i i'm not i i have not that's not i haven't well
kickstart has gone off the rails i don't know
what kickstart is doing now these days it was
supposed to be like a minimal thing that like
is commented and shows you how to do things and
now it's like a distro installing The universe
and just doing all this stuff. How do you get
to normal mode? I use control left bracket. Oh,
really? That's the goaded way. Why? Why, Justin?
Can you explain why? Once you get used to it,
you won't go back. I tried JK. JK is terrible.
No, KJ. The other way around. Because this finger
is faster. You do both. You do both. Damn. Just
like this. You can map them both. Are there alligators
in Florida? Oh, yeah. Yeah. Are you used to that?
Go golfing. If you go golfing, you'll see alligators.
Yeah. Are you scared of them? People's like,
what is this conversation about? Are we talking
about any of them or what? What's going on here?
Are you afraid? We're getting into the spicy
segment of the show. Yeah. What are the plans
when you're no longer around? Let's say that
one day you decide, no, you know what? Emax is
for me. So I'm going to jump off. and I'm going
to go to Emacs. What's going to happen to new
of them? The people that want to extend stuff,
or the people that have particular tastes. Higher
tastes, right? No, you're not going to bait me
into this kind of thing. The whole distro thing
is kind of an accident. I think probably Linus
himself is kind of puzzled by this whole situation,
because he's working on a kernel. He just wants...
To get his kernel on his computer and then like
all these different flavors of the user space
stuff is like. 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. My username is
Link Karzu. 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.
All right. So let's get started with this chapter
then. Hey, Justin. What's up? What's up? How's
it going? Hello. Hello, Link. We're just hanging
out. Yeah, I see a little bit pixelated there,
but that's going to fix in a little while. It's
going to be on and off, I guess, but it's good.
We're going to survive. I mean, that's what New
York City internet gets you, I guess. Oh, yeah?
So you're based out of New York then? I'm here
for now. Oh, yeah? Exploring. I'm an explorer
in a dangerous part of the world. Oh, really?
I'm a pioneer. Yeah. Where do you usually hang
out? You like being in New York a lot or you
like staying in another state most of the time?
I like Florida. I like Berlin. Where are you
originally from? Are you from the U .S. or from
where? I'm originally from Florida, I guess,
mostly. Technically, I was born elsewhere, but
in the U .S. Okay, okay. So, Justin. Really appreciate
you being here, man. It's Sunday and really appreciate
your time. The goal of this conversation is just
get to know you a little bit more. I think there's
a lot of videos of you out there, but I want
to ask some questions and probably chat, have
some questions as well. So really thanks. Really
appreciate your time. Well, yeah, that's a nice
relaxing format. Takes the pressure off because
I'm kind of unprepared. oh yeah okay now there's
a question that i have and that i would like
to start with is why do you do all this like
why do you put so much effort into an open source
tool like any of them what's what's the purpose
is it ego is it you love the tool too much or
that's a good question um One that I have asked
myself, probably anyone who's working on anything
probably asks that, and should. You should be
sure that you're working on the right things.
It's somewhat of an obsession, somewhat of ego,
probably, like, I like to be right, and if Niovin
wins, then that means I was right, and all the
people that really kind of... dumped on it in
the first few years were wrong. A lot of them
have just kind of faded away, but there was some
famous or infamous or just a bunch of nags on
Reddit in the first half, probably, of Neovim's
life that just were relentlessly kind of irritating
me with their drive -by opinions. And yeah, I
don't know. That's probably not a good reason
to to put lots of time into something. There's
probably other reasons, but I'm like branching
off into this one tangent just because it feels
cathartic, but that might also be unhealthy.
Yeah, so they were wrong. Niovin won, and it
turned out to be useful. But ironically, you
know, there's always the larger picture to think
about, which is like our text editors, you know,
even... even still relevant? Will they be relevant
in five years or ten years? That's always something
I revisit that at least once a year, although
I think probably I've beat it to death by now
in my talks, so I'm not going to talk about that
in my talks anymore because I think I've beat
it to death. It's good to just ask questions
and make sure you're on the right path for whatever
you're doing. Obviously, that's kind of a trivial
thing to say, but but it's something that projects
probably don't do like if you don't have that
kind of like this is partly beaten into me from
amazon i've been working at amazon for a while
and so you still work at amazon yes um and but
like so one of the uncomfortable but but productive
habits that that you get from there if you're
going to stick around then you you eventually
will have to accept this habit and it is a good
habit which is you know at least once or twice
a year they have something called op1 where they
kind of write down some goals and and lay out
you know a path the takeaway there is just you
know writing down like one page of whatever and
then analyzing it and lift useful information
that even though like in the back of your mind
you might think it's it's obvious but but if
you if you don't really ever like pause and focus
on any particular thought then it will eventually
like the the cached conclusion that you have
for that thought or assumption will get stale
um and so you actually do have to bring it to
like the foreground of your mind and maybe of
your team's mind because teams are an organism
just like your brain is like a organic That can
actually cover useful answers to stuff that you
haven't revisited in a long time. So once a year
is a good frequency to do that, probably. At
a certain point in what you were saying right
now, you mentioned that you got hate in Reddit
at the beginning. Why was that? What was the
complaint like? Do you remember? Yeah. I mean,
one guy liked to... complain that we didn't support
sigwin yeah one of the earliest complaints on
hacker news of course was like that we dropped
port for old operating systems but that's one
of my favorite examples to trot out because like
it turned out that vim didn't even work on those
operating systems like the code was there but
it was just mostly dead code because vim at that
time barely vim at that time didn't even have
a ci when Neovim was first founded. So that was
like a Neovim innovation was to have CI that
runs on every commit. And I think maybe a more
general complaint was just that we were diverting
energy from one project because forks are assumed
to do that, which can be a valid complaint. But
yeah, that's probably... Not worth rehashing,
but for the two years before Vim was founded,
Vim was basically in maintenance mode at the
time. And this was explicitly said by Bram on
the mailing list. So it was founded in a different
time. And then you could say, well, okay, a year
or two later when Bram changed course, then maybe
we should have folded back into Vim, which...
We would have been happy to do, and I still to
this day think of Neovim as basically a branch
that hasn't been merged back into Vim. They could
do that at any time. There's no real reason that
Clipboard needs to be implemented with 5 ,000
lines of code instead of just five lines of code
in the way that it's done in Neovim. I don't
know. They will continue to do. what they want
to do and i also don't think that like i think
it's pretty it's kind of it's definitely obvious
in hindsight but but the fork in this case probably
brought more energy into the space than than
uh just subtracting from it like it probably
multiplied the energy and so both projects have
uh thrived since then relative to uh where vim
was uh in the previous decade you can look at
like any kind of metric any kind of metric I
mean, it's not just like population increased
that Vim kept getting more users. It was like
both Vim and NeoVim have gotten somewhat, the
rate of new users increased. And at the time,
like Vim was actually maybe flattening. And also
you can look at like donations. That's another
metric. Reddit. subscribers to the subreddits
for Vim and NeoVim. There's all these different
kinds of signals you can look at that just make
it hard to argue that a fork in this case was
a cost instead of a benefit. I do agree with
and I understand the sentiment about dividing
energy. That's a valid thing and it is certainly
like in most cases forks fail and so the initial
will be derision because a lot of times they're
forked without really knowing what you're going
to get into. And the people forking stuff just
aren't going to stick around for too long. Do
you think that NeoVim moves faster than Vim?
I don't know how it is on Vim now that Bram is
gone, but do you think that's different between
the two projects? Oh, there's no question. There's
no question. NeoVim moves probably 10 times as
fast as Vim, though. And one of the reasons is
that you can contribute core features as Lua.
And that was one of the original goals. And one
of the reasons why we didn't just fold back into
Vim in the first place is because there's all
these kinds of architectural and project layout
approaches that were clearly... at least to us,
things that needed to be adopted in VIM. And
just like also giving more people the right access
to the main branch, which is something that didn't
happen really until very late in VIM's lifetime.
Like I think Christian Brabant technically had
right access, but he never wrote to the master
branch directly. And it was also just more of
like a cultural thing where it's like no one
felt that they had ownership over any particular
subsystem except for Bram. Bram owned all of
the subsystems except for maybe like a couple
like the Python interface or something like that.
And how is it with Neobim? Are you the dictator,
the Neobim dictator? Do you take all the calls
or how does that happen? I don't know. I'm not
an expert in every subsystem at all. I try to,
I try to have a mental model of every subsystem
so that like at least one person, hopefully more
than one person, but at least one person can
tie things together and think about the system
holistically, like as a, you know, an integrated
whole so that we aren't, because if you don't
have that, then you, it kind of turns into just
like a, a bunch of inner platforms that are like
not really working well together and and that
you know that accretes over time and it it won't
be obvious at first but like you know five ten
years later it will be obvious and it'll be hard
to untangle later okay You mentioned also about
NeoBeam's popularity. I got to know NeoBeam because
of Prime, because I watch a lot of YouTube. And
I saw this guy, you know, I used them in the
past in servers. And I hated it. You know, the
first few times I used Vim, I was like, why do
people use this? It's awful. You know, H -J -K
-L, you know, insert normal mode. I was like,
no, no, this is not for me. But I searched on
YouTube and I found Prime. And I found specifically
when he moved from Vim to NeoVim. And I was like,
OK, so should I go from Vim or should I go to
NeoVim? prime said new of him i went to new of
him you know straight ahead into new of him do
you think prime has to do a lot with the popularity
that new of him has in this you know past few
years yeah without a doubt and tj too tj of course
and and you and all the other podcasters that
are kind of talking about it and exploring it
and thinking about it that all helps um so in
a way youtube itself is is is responsible for
some of that but uh i i assume it's also there's
some of that for emacs but i mean yeah there
was an inflection point there and certainly prime
at the time that all happens kind of without
me even noticing because i'm not a big consumer
of uh like live streaming coding which i think
is where Prime came from probably, right? Like
on Twitch and stuff like that. Like I've thought
about being a producer of that, but not a consumer.
And why haven't you done it? When is that happening?
People would be highly interested, I think. It's
just one of those things on the to -do list.
I think I will try to get around to doing it
maybe next year. Part of it is the discomfort
of accidentally revealing a password or something
like that. Yeah, leaking your IP like Prime has
done multiple times. Well, not his IP, but the
VM IP. Yeah, yeah, yeah. Yeah, and so the solution
to that is maybe to have an isolated environment.
Right? Is that what you do? I have two monitors.
This monitor and my laptop. And I have some rules
on the window manager and Mac OS so that when
I'm using two monitors, all of the sensitive
stuff goes to my MacBook. You know, Yabai moves
it automatically to that. So even if I open one
password or sensitive stuff, email or something,
it always open there if I'm using two screens.
Right. So that happens when I'm streaming. So
not. completely safe but you know helps because
i don't want to open my calendar and show it
on stream i don't want to open my mail my password
manager and all that stuff so yeah two screens
um when i'm when i'm streaming and that has helped
a little bit i think i i think uh i mean there's
more than one reason that i think probably it
makes sense to isolate one's development environment
fully like plug -in supply chain attacks um npm
supply chain attacks i've seen those videos lately
yep i i just uh i need to get around to like
finding a a good setup for that okay what are
your thoughts on that specifically now that you
touched on it um plugins and security the trust
uh that we should have with with plugins and
how careful we should be would you like to talk
about any of that because people just find the
repo on github they own It's a plugin, new plugin.
I'm going to install it. How can you trust? Because
once you install a plugin, it can do basically
get your private keys, SSH private keys, send
them somewhere you're not even noticed, right?
So is there something you want to share about
that? It's been on my mind a lot, especially
in the last year, because for more than one reason
at work, we had a pretty close call that was
in the news. Then before that, there was the
Geotan thing with the XZ tool. But it's always
been in the back of my mind since forever. It's
kind of hilarious that NPM still to this day
doesn't really check signatures in a meaningful
way. It doesn't check package signatures. The
signatures that are in the package lock JSON
are just kind of optional. There's some... It
doesn't enforce them somehow fully. I don't remember
the details, but it's all kind of like the whole
computing stack of the world is YOLO. This is
just amazing. It's amazing. I mean, in a way,
it's a reason for optimism because you can see
how much humanity can build, and it's mostly
just based on decency. Most people aren't. trying
to do supply chain attacks like but it but it
is also just crazy how how much of the world
rests on decency and not not being that guy exactly
but um yeah with respect to neo them like so
there's more steps i want to take but i i did
uh do some work to clean up some old uh contributors
and remove the right access for them but uh going
forward we need to think hard about more structure
around that um because there's some creative
things you can do with github actions ci and
uh whatever uh maybe like um even like the even
things that neovim doesn't own but are used commonly
to fetch NeoVim, those can be compromised. So
we need operational security that kind of limits
the number of people that can do things in our
repo without at least some visibility. GitHub
has some mechanisms for that, but some of it
will probably require scripting. Some of it will
require teaching developers new, workflows for
committing stuff but we also don't want to be
like cumbersome because the current model where
people have ownership and they don't get blocked
waiting for someone to commit their stuff that's
very effective um it's uncomfortable yeah i remember
at the beginning well I installed NeoVim on my
servers, but they're mine in my home lab, right?
With all the plugins and all that stuff. And
I shared it on Reddit and there was a guy that
said, hey, no, don't do that, you know, because
of security reasons, right? If you work at a
company, what would you say someone, let's say
you're working in, I don't know, AWS, VM, would
you install NeoVim like in a machine that is
ran, you know, at the... core of the operations
of the company, would you install NeoVim there
with all its plugins? Or would you use like a
vanilla NeoVim installation? I'm talking about
security reasons. What would you recommend? Or
do you keep NeoVim locally and you access the
NeoVim, the machine, you know, VSSH from NeoVim?
Or how would you handle that? Or do you have
any recommendations there? Well, there's a few
answers to that. This is one reason why having
a nice good lib, standard library, i .e. defaults
and other batteries included stuff in NeoVim
itself is useful, is because then you only have
one entity that you have to trust. And I personally,
I trust NeoVim because I'm watching it like a
hawk. But this touches on a couple other things.
We helped package maintainers with the ability
to create reproducible builds. The Debian project
had a campaign to make sure that all their builds
were fully reproducible so that when you do a
rebuild, it doesn't have a different signature
on the binary, which is something that I think
Vim still doesn't have because Vim always inserts
a date into its binary. Every build is different.
Although I think probably in WM they patched
that to work around it, maybe. For plugins, there's
a couple of mechanisms. One is a lock file. And
so you can pin stuff to known good versions.
But this is part of the reason why minimal plugins
are a good thing, or at least desirable. Yeah,
I do look at the source code for plugins to see
what they're doing. And if they have 20 ,000
lines of code and maybe even external dependencies,
then I feel less comfortable using those kinds
of plugins, especially in the scenario that you
described. But another longer -term answer for
this is that once we get around to integrating
WebAssembly, in like a more meaningful way we've
started we've started down that path we've done
some initial work down that path but like we
can go a lot deeper one of the things that will
come out of that is web assembly has the concept
of capabilities based security so you can it'll
be like an android app where if you install an
android app it asks you if you want to you have
to give it explicit permission to read files
off the file system or make network calls. So
it would be super nice if when you're installing
a NeoVim plugin, if you could just say, this
thing cannot make network calls. That's pretty
nice. Oh yeah, that makes sense. It's fine. If
it reads your file system, it should be mostly
harmless. if it can't make network calls and
it can't invoke CLI commands, shell commands.
Oh, pretty good idea. Yeah, yep. But doing that
probably means we would be routing those things
through our WebAssembly integration. We don't
want to reinvent all that. Once we have that
WebAssembly integration in place, then we can
reuse that for maybe Lua plugins. Or maybe we
just say, you need to ship your plugin wrapped
in WebAssembly somehow. And we could help make
that easier. You don't want NeoVim to show up
in the news, in the hacker news. NeoVim hacked.
NeoVim caused an AWS outage. How would you feel?
Yeah, I don't know. NeoVim is full of security
bugs. I can tell you that right now. This is
not our focus. If you're running NeoVim, then
you can run any shell command on that system.
So I don't know how we would lock that down without
this different plugin model. Yeah, you have to
do it at your own risk and know what you're doing
and basically trust the plugin creators, the
plugins that you're going to install. And that's
one of my other questions or other topics that
I want to touch on as well. What are your thoughts
on distributions? Like, just let me give you
an example. LazyVim, right? I don't know about
plugins, but I trust Folky. I don't know if he
goes to each one of the repos and reads all of
the source code for each one of the plugins,
but he's experienced. He knows what he's doing
way more than I know, right? So I have that CEO,
that backup there that it's approved by him.
Hopefully nothing bad's going to happen to me
because, you know, he's behind that. What are
your thoughts on distributions? Are you in favor?
That's a good segue to that topic. Because that
is actually an important role for distribution.
Hopefully they are accepting that role. Probably
don't want to assume it. They probably should
say explicitly, we take a close look at these
plugins before we upstream them into our tree.
And if they do do that, then that's actually
a great use case for those distributions. Because
in a sense, they're kind of acting like a package
lock file. They're acting like a maintained lock
file. But regarding distros, other aspects of
distros... Be honest. No one's watching. You
can say whatever you want. You hate them, right?
No, I'm fine with them. I think something that
I've tried to express every now and then is that
every human is at a different stage of their
journey. It's not the greatest word, but they're
at a different stage of whatever the context
is that they're currently focusing on. There's
tons of people where their context is not focused
on their text editor. They just need a tool.
And we've done a lot of work and are going to
do a lot more work next year to make NeoVim a
really useful and cozy -feeling tool out of the
box so that you don't have to make a... choice
about whether you want to invest in it right
now or whether you'll visit it next year. And
if you don't kind of refine it so that it gets
out of your way by default, then people are stuck
with that choice. And it means you're just less
useful. It's an aspect of being useful. If you
want to be more useful, then you should also
think about this use case where people are not
investing a huge amount of their intention right
now into you. And distros are a way of launching
something that gets them to a useful state so
that they can then go do something else. circle
back, corporate jargon, if they have an epicycle
where they're able to revisit, now they want
to put their attention on the text editor, then
they can make a choice to cut out the parts that
they don't need of the distro or start tweaking
stuff or fiddling with stuff and uh trying to
learn more about it and like refine it because
maybe they they maxed out on like whatever the
default experience is for the distro that they're
using um and this happens like in so many contexts
like there's people using oh my z shell that's
probably not popular anymore whatever the replacement
is for oh my z shell those people are really
into shells i am not I don't care about my shell
at all. I just use the default bash. I have a
couple tweaks in my bash rc, and I want it out
of my way. I don't give a damn about shells at
all. Shells are... I actually want to use neovim
as my shell. You just use your shell to cd into
the directory and open neovim and work inside
there, right? Well, I mean, I use shell a lot,
but... I'm not trying to bling out my shell so
that it has all these colors. Exactly. I'm not...
I have not... I haven't focused on shells. I
just don't want to spend time on that. Something
that works well and gets out of my way is what
I'm looking for there. Yeah, and so if you're
starting out with NeoVim, there should be a way
that you can just see what it can do with one
click or one command, and distros are serving
that purpose. It doesn't mean that you need to
stick with it forever, but it's giving a whole
subset, probably a big subset of people, just
a picture of what's possible. It's a live demo.
basically like distros are live demos of what
this thing can do would you recommend a distro
to start with or would you recommend something
like kickstart or you build it from scratch you
know yourself i guess it depends on the context
of that specific person like you just said but
if someone comes to you and says hey i want to
try any of them what would be your first answer
kickstart has gone off the rails i don't know
what kickstart is doing now these days it was
supposed to be like a minimal thing that like
is commented and shows you how to do things and
now it's like a distro installing the universe
and just doing all this stuff that oh is i don't
know what it's doing but like so so in neovim
we are starting to build out some minimal form
of that where it's kind of like what i thought
kickstart was supposed to be where it's just
like it's a starter something to get started
yeah yeah and using just core utilities or at
least if you're gonna integrate some plugins
stuff that you trust or you're gonna bring those
to core yeah yeah like it'll install all of my
plugins no yeah it'll install plugins because
we have a plugin manager now That is a huge unlock
because it takes so much pressure off of us to
make hard decisions about what we want to ship
in the build versus what we should outsource
to, you know, either Nioven -owned repos or third
-party repos. Like, that's a big, it's very high,
very, very useful to have. And so now we have
that. And yeah, we will have some section in
there that shows. Because the two most common
things that people need are a fuzzy picker. Yep.
Like someday maybe we'll have some built -in
version of that. But until then, just saying
to get a fuzzy picker, you just have this one
line. That is very powerful and comfortable for
everybody. And it takes pressure off of us to
rush something into core meanwhile. Because now
the core answer is just one line. Just do this
one line. So this will help you guys to keep
core really minimal and modularize everything
else, right? If you want to add it, you add it
through the plugin manager that NeoVim now has.
Is that correct? It gives us that option. We
won't always choose that option because we want
the core to be... Not minimal, but it should
be absorbing known things. Once something becomes
a solved problem, like the interface and the
experience and the API has kind of been figured
out, that is either because we spent time sussing
all of that out in core or else because the community
figured it out and made it really obvious. or
a combination of those things, once that happens
and we're ready to spend time on it, then it
makes sense for things to go into the core standard
library. But for some things, maybe it never
makes sense to do that because they're not essential
or they're not composable. That's a key axis
to think about. You want things that you add
to core, you want them to be shaped in a way
that can be combined with other things. Because
otherwise, if you don't do it that way, then
all you've done is bloat. I would say that if
you're just adding stuff that can't be extended,
then yeah, it's bloat. That's probably a good
definition of bloat, actually. A lot of times
people think bloat is just like... anything that's
a non -zero like diff but actually i would say
it's bloat if it's like a dead end right if if
you add it but then it can't be extended or it
can't be reused by third parties then yeah that's
bloat bloat yeah yeah there's something that
i want to ask about bloat as well i just got
a super chat thank you very much for whoever
sent that i'm gonna read it in a little while
just and i think there's a question there but
there's something that i want to mention now
that you said bloat like i like extending neovim
a lot you know so i like viewing images in neovim
like pasting images when i paste them it pastes
it converts them automatically to avif format
you know because it's useful for me in my blog
post and i don't take notes with images but in
the blog post sometimes an image is easier to
describe thousand words right so i get a lot
that my config is bloat is bloated because i'm
extending neo vim too much that it's just becoming
like emacs and neo vim should be neo vim or closer
to vim you know there's you know these two opposite
sides you know extending it a lot or keeping
it minimal what are your thoughts on that on
extending neo vim i think this is a very easy
question to answer um a lot of people Martin
Fowler has a bunch of categories for types of
tests, like integration tests, unit tests, functional
tests, behavioral tests. Something crazy is happening
in New York. Anyways, but the only actually useful
delineation for tests, if you really stop and
think about it, is whether they're fast or slow.
Nothing else matters. If an integration test
takes one... Yeah, like the Metallica song, Nothing
Else Matters. Oh, yeah. Yes. If an integration
test takes one millisecond, then that's a test
you should always be running. If it's slow, then
you've got a decision that you need to make.
It's kind of the same thing with your config.
If stuff is super fast, then it doesn't really
matter how much stuff is in there. If it starts
to get slow, then that's a signal that it might
be bloated. This is also why I say the definition
of a text editor is anything that can... The
definition of a text editor... You might have
a text editor if it can be built from source
in less than five minutes. From nothing to everything
in five minutes. If it takes more than five minutes,
you don't have a text editor. You might have
an IDE. If it takes longer than five minutes
to build, you might have an IDE. And you personally,
what are you in favor? Are you in favor of minimal
NeoVim or extending it to your needs? Like if
you want to view images in NeoVim, you do it?
Or you're like, no, no, no. My NeoVim is not
for that. I'm going to use another tool for my
images. I'm going to keep my NeoVim minimal.
What are your thoughts personally? Well, showing
an image, I mean, this is similar to embedded
terminals. When we added an embedded terminal
that was called bloat, but now I think it's pretty
obvious that this is a basic feature that any
text editor or IDE should have because terminals
are pretty tiny relative to everything else that's
going on in software these days. I mean, if you
knew how much bloat was just in a single, cloud
requests, how many hops it's taking, how many
protocol wrappers there are around a request
going into the cloud, you probably wouldn't be
concerned about showing images or embedding a
terminal. Showing images is also kind of like
a solved problem, and this is something that
should be possible to do. Now, if we start taking
dependencies, like build time dependencies on
a bunch of image libraries, and that constricts
the number of platform targets that we can ship
to and run in, then that's questionable. But
if we can do it in a way where it's pretty lightweight,
we're mostly just providing an interface and
using either operating system features or terminal,
host terminal features, then there's no reason
we shouldn't do that because this is actually
kind of painful not to be able to see images
in a Markdown file. Markdown files would be much
more useful if you could inline images in there.
And we're going to do that for help files too,
where you can just somehow show an image. Although,
I don't know, people might not be excited about
that. Half of the core team wants to move to
Markdown instead of the help files. I think we
can support both. I mean, they're both basically
just like variants of each other. Like help files
are, it's kind of just Markdown, really. It's
just a different flavor of Markdown. That looks
horrible, right? No, I'm used to Markdown. So
yeah, navigating. It looks good now. Help files
should look good. Yeah, it looks decent. I have
a... Question here. I'm just going to switch
to my screen real quick and I'm just going to
read this. Hold on. Patricio Serrano. Can the
NeoVim built -in terminal slow down the editor?
For example, if I run a heavy task, will it affect
my editing experience? Any thoughts on how to
prevent this? Maybe using NeoVim's server client
feature? Well, the embedded terminal is slower
than it should be. So that's the short answer.
It's not synchronous. There's parts of it that
are asynchronous. One of the things that I think
probably does slow it down is if it exceeds the
scroll back and it has to start deleting lines.
I think the logic for that is kind of stupid
right now. I think the way that it shifts the
scroll back array is probably super inefficient.
But if it's slow and you're not hitting that
scroll back limit, then that's the other slow
parts that I don't really remember the details,
but it probably has to do with highlights, the
way we're doing highlights, and maybe some of
the buffer options. So we have to think about,
we want terminals to be real buffers, but there's
some things in real buffers that, make things
really stupidly slow. And I don't think we support
folds yet, but we could. But then when we do,
that's going to make them even slower if you
have folds enabled in terminals. And the wrap
logic, wrap is always a pain in the ass. And
we have some half -working wrap logic, and once
we get that fully working, that'll be after we
integrate lib ghosty. from the ghosty terminal
they are exposing their their terminal logic
as a library and so we can we can replace our
current thing with that and hopefully that's
faster but we'll see um but try setting scroll
back to like the maximum number and see if that
makes it faster what was the other part of the
question let's see if i switch here to my screen
it says uh by run a heavy task will it affect
my alien experience any thoughts on how to prevent
this maybe using new vim server client feature
okay okay this is interesting um because the
answer the the perpetual answer to like any client
server situation is that neovim should have p2p
functionality like peer -to -peer functionality
this should be Like, NeoVim should be able to
create swarms of itself on your machine whenever
it needs to so that it can do expensive tasks
in a child process of NeoVim and then throw away
that child NeoVim and then get the result and
then use that in the parent. Right now, this
is just too cumbersome. Like, of course, it's
possible to do, but, like, getting results from
various features in the... child NeoVim is just
not as good as it should be. So if you wanted
to do this in a bespoke way today, if you had
some expensive terminal thing, you could spin
up the terminal in the child NeoVim, and then
you would get the output and put it into your
parent NeoVim. You could show it as a regular
buffer, but then now you have to create some
plugin that kind of makes that buffer behave
in useful ways i guess like if you're like because
you're not going to get the full terminal buffer
experience in that bespoke buffer but that's
the kind of thing you could do um yeah okay okay
appreciate that and um i also wanted to ask you
about um defaults in eofm you know moving on
to a different topic defaults in eofm right because
um when you go into a server you usually have
Vim installed. You don't have any plugins. You
don't have your KJ to go to normal mode. You
know, you have to use escape or control open
square bracket. I don't remember which one it
is, right? So you just have to use vanilla Vim
there. How often do you do that? You know, I
don't do it often. It depends on each person,
right? But what are your thoughts on moving away
from... defaults, right? Like, for example, let
me give an example. Flash .envim is a plugin
that I use sometimes to jump to a specific section
of the file, find it useful at times, right?
Or custom key maps that I use that are not going
to be available in a server. Are you in favor
of navigating or moving away from defaults or
use stock configs only? Well, I wrote sneak,
so I definitely use some non -default features
for navigating but unlike flash it does not move
across windows um is it similar to flash then
that sneak yeah i think i think flash probably
credits sneak as an inspiration i think oh okay
me okay okay yeah although you know i didn't
invent the idea there was something called easy
motion a long time ago that Neek was just a better
version of Easy Motion. So, I mean, I guess the
question is, like, you're asking about personal
choice. For me, there's, like, a few things that
I do non -default, and I have no problem, like,
when I'm roughing it, you know, on a bare -bones
server, and I only have Vim or NeoVim, then without
my config, then it's still... It's usually pretty
fine to get around. There's some things that
we should be adding to the defaults to make that
less of a problem. But of course, that only applies
if you agree with the defaults. But I think that
the answer to your question is maybe contradictory
because I try not to change the defaults unless
they're terrible. And if they're terrible, then
I will change them in the oven. But then this
is kind of like, you know, not everyone can do
that. But I think the default that we're driving
towards, everyone should be using because they're
great. How do you get to normal mode? I use control
left bracket. Oh, really? That's the goaded way.
Why? Why, Justin? Can you explain why? Once you
get used to it, you won't go back. I tried JK.
JK is terrible. No, KJ. The other way around.
Because this finger is faster. You do both. You
do both. Bam. Just like this. You can map them
both. Yeah, but I don't know. You smash them
both. But once you get used to the control bracket,
it's actually way better. I tried it. I tried
escape at the beginning, but because it was too
way up here, I didn't modify the keyboard, my
keyboard at that time, right? I used the default
keyboard, but escape was all the way there, all
the way up there. So I said, no, no, no. Let
me try the control, close square bracket. That's
the one, right? So, and I tried it for, no, I
didn't get used to it. It was like, no, no, no,
no, no, no, no. I just moved to KJ. I didn't
look back ever since. Okay. I don't know. Maybe
that should be a default. That would be hilarious.
We could do that on April Fool's. No one is ever
amused by our April Fool's stuff. Where do you
post those? Do you post them in Reddit or a video
or something? No, I think maybe that's why. It's
because it's only people looking at the issue
tracker. Those are serious people. That's why
they're not amused. Yeah, you should create a
video or something about it. It would be hilarious.
Imagine, oh man, Reddit would go crazy. How's
your relationship with Reddit, by the way? Because
sometimes I post in Reddit and there's a lot
of people there that's like angry. And I don't
know, they just like to attack you for no reason.
How's your relationship with Reddit? Is it healthy?
Well, of course, you're the new event maintainer.
You're there, right? So what? problems are you
going to have there with Reddit? But overall,
any thoughts on the NeoVim subreddit community?
It could be way worse. I think it's fine. I don't
see too many angry people there. I've gotten
pretty used to... If someone's complaining about
a technical decision, I'm totally fine with that.
And I usually just... I mean, I get it. I understand.
I don't have any problem with people complaining
about technical decisions or yeah because nothing
is ever perfect and and i complain a lot myself
so yeah yeah it's usually it's more like the
the things that bother me are the in the early
days were more like just personal attacks and
stuff like that but if it's not personal i i
don't mind it at all okay Okay. Now, would you
mind sharing a little bit about the Neovim's
history? We're going back in time right now.
Were you the one that started Neovim? I heard,
I don't know, Greg, I don't remember. Oh no,
the Rio Terminal creator is the one that told
me that it was some Brazil guys. Are they still
around? Were they the ones that started it? Did
you take over? Do you mind sharing a little bit
about that? Well, Thiago de Arruda was the guy
who... did the initial fork and did a kickstarter
and uh did like six months of uh work to get
all the kind of like flagship features like um
async jobs and the embedded terminal were the
main things and he also did remote plugins which
has had less success but uh I consider myself,
I think it's fair to call me the co -founder
of NeoVim, even though I didn't have a big technical
role in the first couple months of the project.
I was kind of like an angel on his shoulder before
he forked it, and I was talking to him on Reddit.
Speaking of Reddit... We had discussions on Reddit,
and so it kind of led to that. And I was excited
about the project and was involved from the beginning.
And he asked me to take over within not too long,
seeing all the work of the project management
and stuff. And yeah, he's from Brazil. I'm from
Florida. I think tropical... climate seem to
be where the innovation is coming from these
days. What are your thoughts on cold weather?
Do you like it? I don't mind it. I deal with
it. I try not to be limited by... I adapt. I'm
in New York City, one of the most unpleasant
cities in the world, but I'm dealing with it.
I adapt. Okay, okay, okay. There's a reason they
call New York City the city that never sleeps.
I just figured this out this week. It's because
it prevents you from sleeping. What, too much
noise? Too much noise, too much people screaming
and just doing weird things in the hallway and
running their TV and sirens. Do you hear the
train? Do you hear the train as well from where
you're at? No, no, I don't hear the train. No,
fortunately you don't. Just sirens and screaming.
Okay, I can imagine. Any gunshots there? No.
No, fortunately no. No gunshots. Just in Florida?
Yeah, maybe. Are there alligators in Florida?
Oh, yeah. Yeah? Are you used to them? Go golfing.
If you go golfing, you'll see alligators. Are
you scared of them? People are like, what is
this conversation about? Are we talking about
Niobe or what? What's going on here? Are you
afraid? We're getting into the spicy segment
of the show. Yeah, I don't know. We're just rolling.
I have a healthy respect for gators. I don't
try to pet them or give them marshmallows. Okay,
okay. Now, going back to Niobe, how's the burden?
Because you have a... work at amazon i guess
aws related stuff is that right okay now i guess
that that must be pretty busy pretty involved
right must not be easy at all now the album is
not easy at all a lot of issues discussions stuff
going on like yeah how was the burden how do
you feel i mean it's certainly it could it's
it's a full -time job if you let it be uh and
it's hard to do deep work if you're doing multiple
jobs so you gotta choose which job you're gonna
do deep work on i'm keeping up with i think the
project management at least and occasionally
doing some patches and guiding prs and things
like that but i want to do more deep work uh
pretty soon next year okay and what are the plans
when you're no longer around let's say that one
day you decide no you know what emacs is for
me so i'm gonna jump off and i'm gonna go to
emacs what's gonna happen to new of them is there
a plan is there a successor or a group of successors
or have you thought about that well i mean tiago
hasn't been around and the album revived and
thrived i think and uh there was about a year
around 2020 when i was not very active at all
And the project continued and did okay. There
were some things merged that shouldn't have been,
I think, during that time, but that's okay. So
when I'm gone, I think Bjorn will certainly be
around still, I hope. Maybe Jameson. So three
people currently are... Oh, I should do this.
Three people. The German. No, wait. Three people
have owner role on the Neovim organization in
Neovim, so as long as one of us is still alive,
then if someone drops out or gets hit by a bus
or whatever, then that administrative part is
not at risk. They have the keys to everything
and things like that. So, yeah, but in terms
of, say, I don't know, project direction, I think
Bjorn and I are very aligned on the project direction,
so I don't think much would change if I were
not here. And Jameson is not very active right
now, but maybe he would become more active in
that scenario. But we're always gaining... new
smart people that and uh they're building up
their trust and so you know um it kind of just
requires judgment to see like who to trust and
uh yeah maybe we'll have more options in the
next couple years about uh that kind of thing
okay makes sense have you heard about uh dina
he wasn't even con he had his overrides U of
M configuration. I don't know if you remember
or if you recall about Dina. How do you spell
it? D -H -E -E -N -A. And the last name is complex.
I haven't heard of this person. Hold on. I'm
going to mute it here. Oh, yeah. Yeah, this guy.
Dina. Oh, yeah. He's a creative guy. I like him.
I like his videos. Very relaxing video to watch.
Yeah. He's an awesome guy. I had it in my podcast.
It's one of my favorite podcasts, actually. Pretty
good episode, right? But did you know what happened
to Dina? Did you know that he moved over to...
He switched to Emacs. Yeah, yeah, yeah. What
are your thoughts? His stuff was so... His use
case was so involved. I think doesn't surprise
me. I was actually surprised that he was, he
went as far as he did with, with NeoVim. And
I think, I don't know, in a, in a couple of years,
maybe we'll be closer to having better answers
for some of the stuff that he found lacking maybe.
But Emacs has some very unique and powerful properties.
Like the way that, you know, it's documentation
system, I think is they don't have like docs
files. They just have, doc strings on their commands
and those auto generate docs and then so like
when you look at a doc you you're also can just
introspect the the the code that it is documenting
and vice versa that kind of thing is really cool
and uh i mean it's not perfect though like they
still have a c core that's about as big as vim's
c core not many people know this they have like
the same amount of C code that Vim has, which
is more than Neovim. So it's not fully extensible.
Their redraw layer is all in C. You can't extend
that. You can extend that in Neovim. Neovim has
a UI protocol. Emacs does not have a UI protocol.
And also, I just was reminded that this is kind
of just silly trivia, but You can't pipe standard
input into Emacs CLI. You can't? No. Did you
know this? No, I didn't. People have done these
elaborate things to try to make it work. Oh,
really? You can't do it. No, because you're not
supposed to ever be starting Emacs. It's supposed
to always be running. It's like heaven. It's
like the firmament. It's just always like...
blessing you with its life yeah it's the operating
system you're not ever supposed to be like starting
or stopping no yeah yeah you turn the computer
on and it starts emacs and that's where you live
in so that comes you know that brings us to that
topic what are your thoughts on emacs have you
had experiences with emacs have you used it what
do you think about it i i was i used it heavily
for about like 12 months and i think that was
like maybe the year before neovem or maybe it
was during that first year of NeoVim. I think
it was 2013. So my knowledge is somewhat out
of date, but I gave it. I was excited about it.
I think it's awesome. I like the architecture,
but there's some things that were holding it
back. Some of the stuff probably has been fixed.
Yeah, I ended up switching back to the Vim or
NeoVim because... There were things that I was
trying to do in Emacs that could not be done.
Oh, you found limitations. Yeah, and stuff like
the quick fix buffer in Vim still behaves, I
think, better than whatever the Emacs equivalent
is. The Emacs equivalent is more like Sublime
Text or Zed. I think that kind of thing. Lots
of clicking around and trying to do smart stuff.
How's your relationship with the Emacs community?
Do you think it is good to have a healthy relationship
between Emacs and Neovim? Because a lot of features
are taken, I guess, from inspiration from Emacs
that are brought over to Neovim. And I guess
the same thing happens the other way around,
right? From Neovim to Emacs. Is there beef with
you and Emacs or no? How's the relationship?
I think there's very little communication. The
one time we did have productive communication
was I asked them about the completion interface,
and I got some very thoughtful answers from Emacs
people on the NeoVim issue tracker. But other
than that, I think they probably ignore us, and
we kind of ignore them. I don't know that we
necessarily... When I see a good idea in Emacs
or VS Code, That gets the wheels turning and
I start thinking about if it makes sense in the
open. This is the only way to be maximally useful.
And that's all I want. I just want a maximally
useful tool. That's what I want. That's the main
interest that I have in this. What are your thoughts
on other editors? There's one out there that
has Multicursor. Guess which one I'm going to
ask about. Sublime Text. No, another one. That
was the one that really popularized that feature
that no one talks about anymore. Oh, no, but
another one that looks like Vim. No one talks
about it anymore. Yeah, actually. Why is that?
Because of NeoVim? No, I think people just like...
I think the people that... The vocal people that
are writing blog posts and making who knows what
Reddit posts about how great a text editor is
based on whether it has multi -cursor, those
are the people that just kind of migrate to the
next editor whenever it comes out. They're not
loyal. There's no stickiness there. Well, I mean,
obviously, I don't think anyone needs to be loyal
to a text editor. But I would say it's more like
there's not any stickiness there. Why isn't there
any stickiness? It's because the stuff that they
were enjoying about it was mostly like... It's
stuff that feels good on the first impression,
which is important. And it's stuff that feels
good out of the box. But it's not... It's not
the other part, which is the extensibility. They're
not doing anything with the extensibility. They're
not really making super personalized mappings.
Are we talking about Helix here? No, but I think
maybe probably Helix is another example of that
where they have targeted some niche. I don't
know how big the niche is or how small it is.
I think targeting a niche is a good idea. But
the niche that Neovim is targeting is the people
that care about the people that want to extend
stuff or the people that have like particular
tastes. And if you have particular tastes, right?
No, you're not going to bait me into this kind
of thing. I'm genuinely like text editor agnostic.
I don't care what people use and I will switch
to something better if I find it. Like I have,
I have no real, like I'm promiscuous. I, I, I'm
a, I have a commitment. I don't want to commit
to anything. I don't care about the OS that I'm
using and I don't care about the text editor.
I just want a maximally useful tool that is flexible
and lightweight and portable that I can use for
a bunch of different purposes and is going to
last a long time. Have you used Helix? Have you
used it? Do you have any thoughts on it? When
I first tried it, I think it didn't run because
I didn't have the right version of macOS. But
I think I tried it later, more recently. But
yeah, I haven't used it extensively. But I've
been paying attention to the key ideas from it.
Like the key ideas is that better default and
people rightly criticize the bootstrapping experience
for LSP in NeoVim was too cumbersome. And we,
I think, solved 80 % of that in 2025. We still
have a little bit more to do there. But like
a big part of 2025 was having a good answer to
that. And I think we have a pretty good answer
now. the plugin manager is another aspect of
that is because well plugin manager is not really
going to help you install lsp servers and i think
we we uh we will never attempt to do that i don't
think helix does that either maybe it does but
yeah that's good for like demo wear like once
you start like installing lsp servers from your
texas that works for the happy path and it's
great for demos and you'll get a lot of like
excitement from people just like who are just
only on the happy path and they're not doing
i don't know projects that have more complex
requirements or whatever or if it's like vs code
vs code like has like a team of people working
on each lsp plugin like they have a team of people
working on the python plugin yeah you can make
things work you can make things work nicely if
you have a team of people working on the resources
like funded people like these people are making
four hundred thousand dollars each per year yeah
and they're working on a python plugin yeah imagine
now you also touched on operating system a moment
ago and i want to ask you which one is your operating
system of choice and why well i'm using mac os
because it mostly because i like i just want
a laptop that that works well and like the sleep
behavior is is uh i i need to not care about
dealing with any of that and also like i guess
the media devices on it probably work better
than maybe still the current state of the art
for linux i'm not sure but yeah i'm i'm I try
to be OS agnostic. I spin up plenty of Linux
machines at work and use those for development,
like eight hours a day development purposes.
But those are headless. My headless OS of choice
is Linux. Which is true. Well, at work, it's
just some crappy version of Red Hat. percent
or whatever like some derivative of that and
um but i used to be a debian guy oh okay okay
probably now the amazon linux one the one you're
talking about yeah okay okay i probably would
if i would i mean at a previous job uh i was
using a lot of ubuntu even on i think embedded
systems so -called embedded systems i think we
were using ubuntu like What happened to Debian,
your relationship and Debian on the server? It's
like, does someone else choose? Because it happened
to me at my previous company, right? Someone
else deployed the VMs and he decided to use Amazon
Linux. And I was like, man, why? Why don't we
use Debian? And it was too late at that point
and whatever. We just used that, right? But what
happened with you and Debian? Why the move to
Amazon Linux? Of course, because you work at
Amazon, right? Yeah, yeah, exactly. that that's
you you you pretty much have to use that if you
uh want to avoid headaches um and also like i
think it's what they it's i think uh you know
that's the best supported thing for cloud related
like vms and things like that is you want to
use whatever your cloud provider is using usually
yeah makes sense so avoid headaches okay just
like you mentioned and Have you ever thought
about daily driving Linux or you're just going
to stick to macOS? Sure. Yeah, I'm always keeping
my options open. As soon as I hear that Sleep
works well, I might start thinking about it.
I know people are talking about the Framework
laptop, but I haven't heard that Sleep is flawless
on it yet. And by sleep, you mean that you just
close the Mac. Two days later, you open it up
and it's still 80 % charged. Is that what you're
talking about? Yeah. Or a week after you open
it up, it still has charge. Yeah. I'm on macOS
as well. And most of my audience is Linux. I
ran a poll the other day in a YouTube post and
I was expecting most of them to be macOS users,
but no. They're Linux users and they're constantly
telling me that I should switch to Linux. And
I thought about it and I was like, but what am
I going to gain from this? I'm going to invest
a lot of time. I know that I'm going to invest
a lot of time. I'm not going to run some distro
out there. I will probably run something on my
own. spend weeks but what are the gains gonna
be yeah of course i'm not gonna be tied to apple
proprietary stuff i don't care about proprietary
stuff to be honest as long as it works but um
do you have any thoughts there um i'm glad to
see linux gaining popularity i was i started
using linux in 2000 my first distro was suza
um but i also like i'm a staunch agnostic i intentionally
don't care because i don't want to be hurt but
also i just don't think advocacy works at all
ever but also i i think like there's there's
an economic argument economics will save us which
is like like everyone will use what's best eventually
it's good enough so um and and also like linux
doesn't really need any help like it's on every
phone yep Or Unix. Unix is on the iPhones, some
form of Unix. So Linux already won. It's not
ready on the desktop because Mark Shuttleworth
tried, but they just don't have kind of... Framework
Computer maybe is also... Maybe they will kind
of solve this problem where you just have that
really well -functioning, integrated... sort
of unit that you aren't screwing around with
and is not getting in your way. Like I kind of
alluded to earlier, everyone is in a different
journey about what they want to focus their attention
on for a given moment or day or week. I don't
even really want to care about a distro. The
whole distro thing is kind of an accident. I
think probably Linus himself is kind of puzzled
by this whole situation because he's working
on a kernel. He just wants to get his kernel
on his computer and then all these different
flavors of user space stuff. You can focus only
on one thing at a time. trying to digest the
universe or the ocean at the same time, it just
becomes overwhelming. But I did, I did all this
stuff. I fought X org. I fought X org before
it was X org. Okay. Do you get, do you get pushback
from your friends and the new open core team?
I know Gregory Anders is a Mac OS lover, just
like me. I'm not a Mac OS lover. Don't tell anyone,
but I am, but. I know Gregory does love macOS
because I had him the other day in an interview
and he talked about the Apple Watch, the Apple
TV, all that stuff. So do you get pushback from
other people besides Greg? Like, why are you
on macOS? You should switch to Linux, like a
real chat. My Apple usage is confined to a laptop.
I don't use any other Apple products, although
I'm sure they work well together. And I don't,
no, I don't get any, I don't think, no, yeah,
people are pretty OS agnostic. We need more Windows
developers. We've started to see some activity
there on the pull requests. But yeah, I would
love to have some Windows developers that are
paying attention to. Yeah, if you want to touch
on that, because Gregory mentioned it too, and
I created a video about that, you know, like
NeoVim needs your help. And Gregory was like
this pointing, like with Uncle Sam, how is it
called? I don't remember. But what do you need
help with on the Windows side? And what's the
best way for someone to, you know, contribute
to NeoVim on the Windows side to become a core
maintainer? What, yeah, just share about that
with us. There's a Windows label on the issue
tracker. There's about less than 100 Windows
issues. The ones that really would be helpful
is having someone sit down and solve path handling
in a coherent way. We kind of just need to rework
the way that flashes are handled in the path.
That would be a good start. There's a few other
issues. I don't know. But the file system stuff
is really the main thing to start with. Okay.
And this is for the native Windows application.
Is that correct? Yep. That's right. I'm going
to switch back to our screen. Is there anything
else you want to show here? No. No. Okay. So
that's native Windows application that you need
help with. Okay. So people just go there, install
plot code and vibe code. uh solutions and send
you a what are your thoughts on 2000 line ers
that you're like this was ai generated does that
impose a lot of a burden on your side and it's
like because you have to review it understand
and all that stuff um yeah what's the best way
to contribute to new of him well ai is it's fine
to use ai but um definitely the human that's
Authoring the PR should review it before asking
us to review it. It's easy to tell which ones
are AI -generated. They just have a certain voice
and they do certain things that are obvious.
The human should take some time to double -check
what it's doing and compare it to existing code
in our codebase. The way that the AI writes tests
is kind of just, it's not following the patterns
of our other tests. Okay. The human should check
that before they ask for a review. Yeah, because
that's just a lot of work for you, right? Yeah,
I guess it would be extremely annoying to get
that type of PRs. And let me just read this because
I just got a super chat here. I don't think you'll
be able to see it, but it says here, Miguel Rodriguez,
Justin, thanks for your amazing work on NeoVim.
The project is amazing. The Lua APIs are a joy
to work with. So easy to make the editor truly
personal. Nice words from Miguel there. Appreciate
the donation. And is there something that you
want to demo on your side? So we can talk about
the roadmap. We implemented restart and attach,
but no one even noticed. What do you mean by
restart? Like I can reapply my config without
quitting NeoVim and reopen it again? Is that?
what that is that's right oh really i have been
quitting neo vim every time i can make a change
so but that's 0 .12 or yeah yeah that hasn't
been in 0 .11 so i can demo that now but the
trade -off or the uh the caveat is that uh it
currently doesn't restore your session okay so
like we can just try that i'm gonna do restart
should i should i make this bigger just do this
yeah yeah that's awesome yep okay so if i type
restart it just it restarted the entire process
and so it didn't restore the session so i have
to manually go back to that file but help restart
it gives some tips about how you can kind of
do it manually so um you can just use make session
and then and then restart takes a command line
and it will do that that's when it when the process
restarts so now we can uh try this let me make
sure i don't have a session in here no i do okay
so i remove that now we're gonna do this save
the session restart and it should it's it worked
all right great so we just did a full restart
of the process and it And it restored the session.
But yeah, it's kind of a small thing, but it's
also a huge quality of life improvement. And
the funny thing is that people are using it a
ton. I'm seeing it pop up in demo videos and
blog posts and instructions on people's plugins
or whatever. So people know about it, and they're
using the heck out of it. Oh, yeah. I didn't
know about it. It's like this humble little feature
that is like... The reason that it's tying together,
it's dependent on the client -server architecture
of NeoVim. We implemented the UI as a client
to another NeoVim process, which is the server.
And that was another thing that people kind of
were skeptical. Some people. I shouldn't say
people. I should say... Some small portion of
people were skeptical about it. But it's just
like one of those things that it's the right
architecture. It makes it easier to reason about
the system. It drives technical decisions in
the right direction because it forces us to avoid
shortcuts. So one of the things it forces us
to avoid is... Because the terminal UI is a UI
just like a GUI, just like a graphical UI, it
means that we can't take shortcuts. So we have
to use the full UI protocol just like a graphical
UI would, which means it's driving us to do things
the right way. And then on top of that, when
you do things in a nice architecture, then you
get these little serendipitous possibilities
like restart. implementing restart was i don't
know 100 lines of code total maybe and it but
but it it sits on top of this architectural decision
that we made years ago okay and and so it would
not be possible without this this architecture
not you could do it in a hacky way where like
the way that like you could hack it but you can't
you couldn't do it like in a terminal thing The
way that a lot of programs like VS Code implement
this is they'll have a watch or a service or
something, and then it will sort of trampoline
the restart. But you couldn't do that in a terminal
because the terminal involves a shell. So that
trampoline would have to do something really
cheesy like, I don't know, send keys to your
shell and do it that way. It cannot access the
interior session of your shell. So there's no
way that a service can do that. You can only
do this with this architecture. Awesome. And
I don't know if Emacs has this. It might have
it. Actually, I think it does. So that's pretty
cool. And then also Detach works too. So let
me... I do listen on a local... It's a socket,
right? Okay. Yeah, it's just a naming convention.
And so now you can see my server is that file.
That's the server address. Server address. Now,
if I do detach, then the server is still running.
Okay. Server's still running. And I can reattach
to the server. Actually, I should have... I should
have done this. Now you can see I detached again.
Now when I reattach, it will still have that.
Why didn't that work? Oh, because I quit instead
of detaching. Okay, so we're thinking about something
like tmux here, right? So that you detach and
reattach. And I guess this would work remotely
as well. If you leave it running on a server,
can you reattach to it from another location
then? yeah exactly oh man that's awesome what
what drove this was it tmux i mean that's the
idea yeah it's the same sort of model so this
and if i detach and then i do remote ui that
has the ui i was doing it wrong because um i
forgot to put a remote ui in there this is something
that i actually want to drop i want it to just
work without doing remote ui but oh okay there's
something else cool i wanna so we added also
connect this is kind of experimental right now
but connect would allow you to connect at at
runtime from a different neo vim process so we're
gonna do actually we'll just do this and then
i'll start a new one now if i do connect hold
on it doesn't we lost your connection there for
a little while so You detached from the instance
that you were on before or what did you do? You
just opened a new window below? Yeah, this is
a new window. Okay. Oh, that's experimental and
that did not work. Imagine doing all of this
in a live stream. People would tune in, man.
So hopefully next year, right? I don't watch
live streams either. You know, I don't like watching
live streams. I like watching clips, so if you
can make clips out of your live streams, it would
be awesome as well. Yeah, I think the connect
command... Yeah, okay, so that worked. The connect
command has a bug in it because the tilde was
there and it didn't expand it. And then it just
crashed. But yeah, those three things are all
kind of tied together. Can you explain connect?
I didn't understand how that works. What's the
purpose of connect? So instead of, whoops, I
quit from the server, so it closed everything.
All right, so the top one is a server and a UI
running. And then, so instead of doing, instead
of connecting, instead of specifying the server
at the command line here, I can just start a
new InVim instance and do, like, I don't know.
So I'm doing stuff in here, blah, blah, blah.
But now I want to throw away this instance and
connect to a different server from this instance,
which means there's some choices that we have
to make about what we do with the current server
when we do this. But it's a way of just changing
the server that you are connected to from this
UI. so now it will connect see it connected to
the the same server the same server even when
i when i move them both the movement is happening
on the server both uis are showing the the same
ui oh so you did connect you do it with that
within an ubm instance and um to attach to an
instance you do it from outside right uh through
the socket I did it from within this... Well,
it doesn't have a different history now because
it's connected to a different server. Okay. But
I did it from... This is another usability thing
that I need to think about. Because if you quit,
then it quits the server. You have to... Oh,
you want to keep the server running, right? Yeah,
if you want to keep the server running, you have
to detach. Oh, okay. Makes sense. And this connect
thing is not getting added to history. That's
probably another bug. It should be updating the
history before it does its thing. And it's not
doing that right now, I think. And how do you
think people could benefit out of this? Do you
mind sharing some scenarios? Like a remote server
could be one of them. What do you have in mind?
This is a Summer of Code project that kind of
only got 70 % completed. A use case for this
is to avoid people having to craft a command.
in the command line which is not just a usability
thing but also it it opens up new applications
and so so one of the applications of this is
like if you want to connect like say you have
a bunch of ssh servers all the connect commands
can present a menu of all the all the ssh servers
that it knows about and then connect to them
it can connect to uh and it can also presents
a menu of all the local NeoVim servers that you
have running. There's one use case that I think
is interesting for this. This is kind of just
a minor thing, but a lot of times when you open
something, when you open a file from your file
manager, you want it to open in an existing instance
of NeoVim. That usually feels better because
If you just start fresh every time, then you
don't have access to the other buffers or whatever
that are open in your current instance. And so
this enables that because it can just connect
to the, I don't know, a first server or maybe
some server with a special name. Whatever you
mark as your default server, it could open the
file in that server. And that will work in a
terminal because it can just start a new terminal
and, you know, do this kind of thing and open
the file in an existing NeoVim server. Oh, that's
awesome. I have a question for you. So let's
say that I run NeoVim on a server, remote server,
right? I run a NeoVim instance on it and I start
the socket there, right? to that socket, right?
I can attach to that from my, from a different
location. Is that right? Yes. Okay. Now what
configuration would I use? Let's say that on
the server, I just installed minimal new of them
because I don't have plugins there. I cannot
install that. I don't want to install plugins
there. And if I run it or if I attach from my
local session, do I use my plugins, the ones
that are, or I use whatever is installed on the
remote server. um everything currently the the
model is that the server everything is running
in the context of the server the ui is just a
thin um it's just it's only showing a view porch
it's only a way of like viewing the what's happening
on the server and that means all file system
commands everything all all plugins and scripts
all logic all mappings all input happening on
the server. It could make sense to explore bifurcating
that so that some things can happen in the UI,
but it's something that we're deferring for now
because it just introduces a lot of opportunity
for new kinds of things to reason about. Because
right now, The UI is not running like a full
instance of NeoVim. It's only running the bare
minimum parts that need to show a UI. Oh, okay.
Okay. Awesome. Appreciate it. Is there something
else that you want to demo? I see a lot of cool
stuff there on your list. I'll demo the new progress
feature. So we added... We added an extra flag
to the Envim Echo API so that you can emit special
messages called progress messages. And then there's
more info about that here. And the interesting
thing about this is that it formalizes the concept
of having an ongoing task or something. And there's
some message like holding the current. status
of that task and the most obvious use case for
this is just like showing the current percent
of something that's done or showing like a busy
indicator somewhere um but you know it's potentially
useful as uh kind of like i don't know if semaphore
is the right word but like just uh a piece of
state that signals to multiple consumers about
the status of a task. So that was kind of too
abstract. But in terms of UI, this is obviously
used a lot in LSP. LSP has the concept of a progress
event. And right now, we don't really surface
that. very well, but we should be showing it
in the default status line, but we don't. But
this opens the door for also emitting this to
graphical GUIs or TUIs. And so Ghosty, which
is the terminal that I'm using, it has support
for this event. So now if I do this demo, which
is just running my normal config, My normal config
has a packed out add call, which is the built
-in plugin manager. It's installing all of these
plugins. And our built -in package manager emits
this progress event. So now if I do the demo
and I say... Yes, you can see at the top, look
at the top, there's a blue bar. Oh, okay, okay.
It's showing the progress. That's built into
Ghosty because it supports that terminal sequence,
which we automatically emit. Whenever you use
this nvim echo progress feature, it automatically
emits that event, and if your terminal supports
this, it will show whatever. However, it decides
to present progress. And by default, you can
see at the bottom here, we also have our own
built -in message thing that shows the progress
in the way that you see at the bottom there with
the 100%. So even if you don't have a supported
terminal, you could see it there at the bottom,
right? Yeah, and we'll probably do some more
work around there, maybe in the status line or
something like that. The status line is tricky
because that's only a solution for anyone using
the default status line, which seems to be...
I might be the only person using the default
status line. I don't know. There's something
else cool I really want to point out, which is
that Ghosty has a built -in inspector. This is
a game changer. This is like Chrome DevTools
for your terminal. This is going to... single
-handedly like this single feature of ghosty
is is going to change it's probably going to
like double the amount of like it's gonna probably
gonna quadruple the quality of of terminal applications
and it might be maybe it'll like also increase
the number of things that people are making because
we just didn't have anything like this before
in any terminal emulator so you can see here
I can use this picker, and I can click on anything
in the terminal, and then it gives me information
about that cell in the terminal. And you can
also see on the bottom right, it's tracking my
mouse movement, which is a hint that terminals
themselves have access to other info, which you
already knew, because when you do a right -click
on any of them, you can see that it's tracking
your... your mouse movement i didn't even know
that i could right click any of them yeah and
this is probably because uh i mean this is the
downside of distress is that they they can obfuscate
like built -in features oh and how could that
benefit any of them that uh ghosty what is it
inspector um because it makes it lowers the cost
of terminal development Terminal development
up to now was kind of just imagining how things
should be, reading the spec, and doing printf
debugging. So now you have this kind of interactive
thing. That's a big deal. I guess that's enough
about Coasty. Let me see, is there anything else?
That's pretty much it. Probably been quite a
long time for our viewers. But I do want to mention
that one of the killer features of Vim is the
window management. You can do a lot of... It's
more powerful than probably a lot of window managers.
Linux, even. Okay, elaborate on that, please.
I want to know about this. Well, I just created
six windows here. I have the concept of an alternate
buffer that I can easily switch to in a given
window. Actually, do any window managers even
have that? I wonder. Do they have a stack? Can
you have a stack of views in a single window?
You can break out Windows into a new tab. That's
it. I think people underuse Windows. That's all
I wanted to mention. Okay. Okay. Awesome. Now,
what window manager do you use? Do you use any?
I switched back to our screen. So thank you very
much for the demo. Pretty interesting. No? I
don't use window managers. I use the built -in.
You can make Windows halfway like this. That's
all I need, if I ever need it. Oh. At the OS
level? Yeah. Oh, okay, okay. But you don't use
nothing fancy on macOS, right? Just mainly in
NeoVim. Do you do all your window management
in NeoVim then? That's the goal. Oh, okay. If
you have other GUI apps that you need to see
side by side, then I would do something like
this. This is the most I ever do, is just have
like a half and half like this. Okay. oh i see
okay yeah yeah i do that sometimes and not too
much you know because because of real uh estates
on the screen but sometimes it's useful yeah
makes sense what is your terminal of choice i
switch back to our screen i see ghosty there
but i also posted in the neovim subreddit a few
months ago maybe i don't remember when about
the scroll back in kitty right because i can
access the scroll back open it in neovim you
recommended me a feature that is only available
in neovim 0 .12 i'm not yet on neovim 0 .12 but
how do you know about kitty did you use kitty
before did you switch to ghost yeah yeah i would
be using kitty if ghosty didn't exist but the
terminal inspector is a killer feature i think
um you know i still have kitty installed which
is saying something because normally i would
uninstall something that i don't like and so
here's the scroll back you can see it's a it's
a buffer in the oven and how are you doing that
is gregory i think told me that scroll back is
not something that's implemented in ghosty yet
right this isn't kitty oh kitty okay okay okay
now can you show me the scroll back again are
you looking at it with colors yeah yeah yeah
it's uh it works it works and there's a way to
make it work in uh 0 .11 you just have to um
if you define this command this just do what
Yeah, I try to define it, but I think that nvim
-open -term is not available. I don't remember
what happens exactly. It is, but it might not
have this feature where it works on the current
buffer. I think that might be... I thought that
was in 0 .11, but maybe I'm wrong. Yeah, because
I tried it and it didn't work. But if you open
your scroll back in Kitty, it shows it to you
in colors. I missed that part. uh yeah yeah watch
this so i'm going to hit my key map now to open
this screen itself as scroll back and it looks
like the same screen but it's not it's actually
just it's scroll back and you have him awesome
yeah like even this line here if i said if i
set it as modifiable i can delete that line see
and it it's using this is kind of interesting
um Yeah, it seems like that background highlight
was stuck there. That might just be a bug, I'm
not sure. Okay, so you moved over to Ghosty because
of the inspector and you're staying in Ghosty,
correct? Yeah, just because it seems to be converging
more on that idea of a maximally useful unit
that gets out of my way. Giddy is pretty close
to that as well, but Ghosty has some slightly
better integration with Mac OS. I mean, obviously,
the tabs are one thing, although I don't actually
care about that, really. But they seem to be
going in the direction where I expect that they
will soon have the features that I want. And
then it'll keep just getting better. But currently
like it is missing two major things, which is
one is the scroll back handling and to, um, opening
files from your file manager, like your, your
OS file manager. Yeah. Okay. Yep. Like you can't
easily, I don't think it's even possible. I mean,
I think Hashimoto claims that it is, but I asked
him on, Twitter and he didn't reply. So I don't
know. I could not make it work. I just want to
double click on a file in a file manager and
have it open in NeoVim in a new terminal tab.
That's all I want. Yeah. I don't ever want to
see VS Code open for a JSON file or whatever.
What about Neovide? Because you can do it with
Neovide at the moment. Yeah, that's true. I have
Neovide, but there were some sharp edges that
I kept running into with it. But I really want
Neovide to work well. I'm trying to do what I
can to drive the right... UI features and RPC
features in Neovib to support Neovib. I want
it to work well, but... Okay. But this problem
will be solved with the feature that you mentioned
right now, that you can open files from your
editor into Neovib, right into a session or something
like that. Well, that's an extra goal that requires
NeoVim to solve that. But the session thing,
the existing session, that's just a matter of
passing the right arguments to NeoVim. But if
I double -click on Zig, if I double -click on
this, see, it opens in Kitty in a NeoVim instance.
That's what I want. because he's not giving me
this i see they they pretend that it is possible
and i think they're wrong okay now now that you
mentioned kitty as well i had an interview with
kovid uh he's the creator of kitty i watched
it oh you watched it what are your thoughts because
i had a bad image and cope it to be honest uh
because i don't know why you know just videos
that you watch on the internet and you just follow
along and and after the interview because of
his uh his comments on the issue yeah yeah yeah
yeah exactly because of that but he's not shy
about um yeah he won't say he won't say he won't
just say you're wrong but he'll say you should
feel bad i don't know if that's true i i'm spreading
this information but like he he's not shy about
adding a little spice to uh yeah comments but
if you come think about it right imagine managing
caliber because that's his main job he lives
off of open source caliber and it's a huge tool
it's an amazing tool i haven't used it until
after that interview my wife used it and she's
like god damn this tool is wonderful right so
imagine you maintain caliber your wife was like
god damn no i'm just uh spreading misinformation
like you said she didn't do it that way but imagine
maintaining caliber maintaining kitty yourself
right man that's a lot of work so i guess imagine
a lot of issues being opened on on kitty for
just i'm not the most patient person in the world
i i i'm amazed that i i'm yeah no i i i have
no problem with uh abrupt or blunt maintainers
as long as the parameters are well understood.
I don't mind being like, okay, I'm just a customer
at the Soup Nazi. That's a Seinfeld reference.
It's a very dated Seinfeld reference. As long
as we all understand the parameters, I don't
mind dealing with some abruptness. Or even some
abuse, maybe. As long as my bug is getting fixed.
You're willing to endure it. I don't think COVID
is abusive, probably. People have some very high
expectations. One of the things that a Reddit
user told me was this very weird interaction
years ago. There was a Reddit thread and somebody,
I don't know who, posted something on Reddit.
And I was enthusiastic about it. I wrote some
enthusiastic comments. And then someone else
popped in and said, this whole thread seems fake
and astroturfed. And what are you doing this
kind of marketing for? And I'm like, you're wrong.
that's not what happened here i just am enthusiastic
about this new feature this guy posted about
it i'm explaining it i'm not making any money
off of this like what are you talking about and
he's like and his response was you should just
be you should take this as feedback to adjust
your behavior in the future because this is what
i perceive as a user so my point is like people
will do all kinds of backflips And they never
stop asking for more. They never stop. Their
expectations are through the roof there, into
outer space. They think that you should put up
with anything and then take it as feedback to
adjust your behavior no matter what the context
is. So I don't expect that. I mean, obviously,
if the vibe is off, then I might stop interacting
on an issue tracker or something. But I think
I understand COVID. He's a technical guy. If
it's all technical, then it's no problem. But
I guess the point of that allegory was people
don't like his bluntness. They want him to be
like... constantly just gracious yeah and uh
infinite patience and all that stuff yeah and
and we'll get more of that like as we have like
more of our ai kind of like you know once i have
like an ai bot that's like representing me it's
like it will be infinitely patient and then i
will just have much less i'll have much less
of that kind of stuff where i have to like bite
my tongue and just That's a good idea. Pretend
to be nice and patient with people that don't
deserve it. Which is not too many people, to
be honest. I mostly... for the users and their
patients. There's a few folks out there that
are confused on how open source works. I come
to open source and I go to a project and I'm
thankful mainly, you know, because of the project,
because people putting their work, you know,
putting their asses off on a project. for nothing
in return basically no guarantees no nothing
just work that they're they're doing so i don't
expect them to solve my bugs you know i just
go and ask kindly if someone has the time to
assist or something you know but you know there's
people confused out there that demand stuff from
open source and you shouldn't you just take what
is out there and just kindly you know ask and
that's a misconception that's not something right
with the community not all of the people do that
but there's a lot that are confused i think is
the right word i'm not sure yeah you know it's
uh it's uh these things come in waves and um
it varies and uh i don't think that users need
to feel like you know they're not like crying
at an altar you don't need to like It's fine
to complain. You don't need to worry about irritating
the ogres that are maintaining the project. I
think the expectations can get too high where
they're just expecting infinite graciousness
all the time. Because, I don't know, some people
actually advocate that kind of thing, especially
on old Twitter. But then, you know, those people
also... tend to not be around for a long time
they'll have a project for like a year and they'll
be like oh i i look at every issue i look at
every comment as a learning opportunity okay
well you're going to be doing gigabytes of learning
because you don't have any you don't have any
like feed you don't have any like pushback mechanism
i mean okay you're gonna be drinking from the
fire hose like your learning opportunities will
be endless uh -huh good luck but what what they
actually do is they just quietly like fade away
and like the project goes dark and they but they're
missing out on all these learning opportunities
that they aren't answering on the issue tracker
yeah yeah and strange the project goes into maintenance
mode after and yeah that was it a year right
but it quietly dies i miss out on learning opportunities
yeah imagine maintaining huge projects for years
by yourself i would be pissed too right because
he does the kitty development for his own work
that's his tool that he uses to work and to develop
his other stuff, I guess. But I don't know. I
have a lot of admiration for COVID, you know.
He has created a lot of different protocols for
terminals, right? The Qt Graphics protocol. He
also mentioned other ones that have been adopted
by NeoVim. Do you have any idea? I don't remember.
The keyboard protocol. Yeah, we're using his
keyboard protocol and we will be using the Qt
image extension, probably. Oh, for images, okay.
He's also working on the variable font size protocol.
Have you seen that? Yeah, we'll probably be doing
that too, yeah. So turning NeoVim into Emacs
then, pretty much. Well, it needs to stay fast.
Emacs has struggled with performance. One of
the reasons was because it has variable font
height and width, which means there's no grid.
There's no grid. The grid is more like, I don't
know, bubbles. Bubble wrap. But that makes the
line wrap calculations very slow because every
character can have a different width and height.
But we probably will only support variable height.
Supporting variable height shouldn't be... That
shouldn't hurt performance. Okay, okay, makes
sense. We've been here for a long time, Justin.
How much time do you have left? I've been standing
for two hours and a half of your Sunday. Yeah,
I don't know. It's more like I have maybe 10
more minutes, 15 minutes. Okay, okay. Let me
see what other topics I have here. No, we don't
have any other super chats at the moment. Let
me see what other questions I want to ask you.
Linux, we touched on that. Terminals. Okay, now,
when NeoVim 0 .12 comes out, when is that happening?
Do you have any idea? We're aiming for... Well,
the tentative date was a month. uh december but
um yeah i don't know if we're gonna hit that
but this is one of the things that i'm going
to spend time on next year early next year is
uh putting into place a few missing kind of like
project mechanisms for allowing us to to release
more often the problem is that we don't have
For some of our interfaces, like say the UI protocol,
we don't really have clear mechanisms for marking
those as experimental. People use them, they
get dependent on them, they get sad if they break,
and that just kind of adds to the impression
of chaos. So we need to kind of have a more coherent
story around avoiding that impression of chaos
while also being able to release like much more
often because like this sort of twice a year
or once a year release thing it actually slows
everyone down like we have some amazing features
that probably should be released by now but they
aren't because there's high risk stuff that still
hasn't been uh finalized um in other parts uh
of the system yeah okay okay and um when that
comes around i don't know if you would like to
have like a call with maria solano and gregory
anders and you just show off neovim 0 .12 features
each one of you sharing with the community and
all that stuff would be awesome if you if you
guys want to do that i talked to maria she said
she's all right i'll talk to greg and see what
he says if you're good you know Awesome idea.
Okay. Now, moving on to other topics, the final
topics, just to get to know you a little bit
better. Do you have any thoughts on, this might
be a little bit controversial. You don't have
to answer if you don't want to, but do you have
any thoughts on substance, not abuse? Could we
say abuse? I did a lot of substance abuse in
the past, you know, a long time ago. But do you
have any thoughts on drugs, substance consumption,
we could say? Do you recommend it? Are you in
favor? Are you against? You don't want to answer?
I don't really have any... I have some high -minded
philosophical thoughts on it. I think when I
see people on fentanyl on the street, I think
they're probably trying to exit the matrix. I
think a lot of us... Life is very weird. Probably
one of those things that rarely ever gets revisited.
Speaking of yearly OP1s and revisiting the path
that you're on, very few people learn pretty
early on in their life to stop asking where the
universe came from. Because that's just an overwhelming
thought. And so you have scientists saying, well,
it came from the Big Bang. yeah that's fine but
like that still doesn't explain anything really
like yeah meanwhile life can get very overwhelming
and probably especially maybe in these times
i don't know that that that might i think i think
everyone thinks the time there's probably more
periods of history than not where you know it's
the notion that that's a particularly um difficult
period to live in and before it's probably that's
probably a pretty common thing to say like in
every almost every period like i think there's
been some tranquil periods where maybe people
realized it was a pretty nice period of time
to be living in but then like so i don't know
it's hard to say if this is any more challenging
of a century than the previous centuries. But
I think for sure, humanity, humans in general,
are more ironic than they ever have been, for
sure. You can tell this just by the types of
humor that are in sitcoms or television shows.
It's very subtle now. Or a movie like Inception
or Severance. this tv show like people in 1900
would not have even like understood that because
they hadn't they hadn't ramped up on they hadn't
been like sort of like acclimated like like gradually
throughout life to like all these kind of like
ironic concepts um so that it that that makes
the case for like this being a different period
of time where maybe uh Substance abuse seems
more attractive than normal. Because I get the
impression that Oscar Wilde was just like, I
don't think he was doing opium because he was
depressed. I think it was just a nice, a fun
thing to do, like drinking or something. I mean,
I think he probably went overboard and probably
started to have some issues there and noticed
that his finances were running low. But, yeah,
I think I have a feeling that people were doing,
although you do hear about alcoholics like ages
ago, but were they doing it because they were
upset about like the state of the world or like
they had failed in life or something? Or were
they just they just accidentally have too much
fun and it became a habit? That happened to me
the latter, you know, was having too much fun
became a habit. destroyed me and i was able to
get out of it but uh not everyone does but uh
yeah go on sorry yeah i had a thought about um
this recently too about like um if you go to
rehab and then you come back i wonder if it's
i wonder if this happens also if like you go
to prison you come back assuming you don't have
like crushing debt or something or legal problems
putting those aside the world expects nothing
of you assuming that is it a state where the
world expects nothing of you and that actually
is kind of like a freeing freeing in it like
a lightness of being allows you to start over
i'm wondering if that's the case for that kind
of situation because i i feel like i i would
love it if the world had like no expectations
of me you know and maybe that's one way to get
there is to just like go Down to the depth, but
also to reset. The footnote is that you got to
make it up to the bottom. To reset the expectations,
right? So you go down to the bottom. Is that
the only way to get people off your back? Like
stop with all the expectations. That's a good
point. That's a really good point. We have Sybil
and Franklin in chat. Have you seen this guy?
Yeah, I like his channel a lot. Oh yeah? You've
seen him? He's also a philosophical guy. Yeah.
He's into Adderall. He's not into Adderall. Apparently,
he's not in the last few videos, Sylvan. Are
you still into it or not? Or you haven't decided
yet? We had a live stream. Let me tell you about
this. We had a live stream planned. We joined,
all of us, and he never joined. And I was like,
Sylvan, are you joining? He never joined. That
was the day he stopped the Adderall. Yeah, man.
Crazy, crazy. So we have two super chats. Emma,
I'm a user. Hello, thanks for all the amazing
work. I just joined in. So excuse if this was
already asked. What are the plans for Multicursor,
Dustin? The plan for Multicursor is I made a
solemn blood oath to deliver it before the end
of this year. So I'm going to merge something
before the end of this year. it'll be we have
big old experimental label on it so they get
off your back pretty much basically right well
also i made a i made a a blood of i can't oh
you cannot okay i see okay and sylvan saying
here i love to see this guy getting to express
his ideas in front of more people doing doing
good work both of you appreciate the donations
uh guys no more adderall he says And he got put
on a psych ward that day. So that's why he didn't
join the live stream because he was put on a
psych ward to Arkham City. I joke with him. That's
an acceptable excuse. Yeah, it is. So I forgave
him because of that. And I also wanted to ask
you as well, Justin, last question, because I
know you've got to run. Do you have any thoughts
on a supreme being? What are your thoughts on,
you know? on that. Do you think there's something
out there with a different shape? I don't know.
Or there's just Niovim out there. Niovim is the
god, or the terminal is the god. Niovim is the
firmament, I think. I mostly have a cop -out
answer to this because It's too political. It's
an unsolvable problem. It's just an unsolvable
problem. And also the answers are mostly unsatisfying.
I do think the last 20 years have done a good
job of demonstrating that people need rituals
of some kind. People need rituals and like scriptures
or hymns or I don't know, shared something or
other. um they need uh they need some sort of
religion um but like regarding god specifically
like everyone always ends up like choosing some
sort of religion it's just that it's either like
an ad hoc like cobbled together sort of like
you know uh grab bag of ideas which is probably
where i currently am at or it's uh something
that has uh that that benefits of the lindy effect
it's survived over time and um it mostly works
good enough and it and it has shaken out most
of its bugs and and there might be you know it
might have a lot of bugs but they're not like
fatal bugs um and whereas the you know any kind
of ad hoc religion that you come up with is probably
going to have uh it has it who knows how many
different fatal bugs and it's you don't really
know because it hasn't uh hasn't been uh washed
through the the pebbles of time but regarding
god specifically it's partly a definitional question
like because when people talk about the big bang
well they're still talking about something that
is essentially paranormal or supernatural like
it's not something you can reason about not something
you can imagine um And then when people talk
about, oh, we live in a simulation, it's like
the most NPC opinion you can have, because you're
essentially saying that there is also a god above
the simulation that created the simulation. Such
an NPC opinion. I want to make it very clear.
If you say that, you're an NPC. You're literally
like a shopkeeper saying, welcome to my shop.
like a video game that uh like you're in like
the fourth sequel of a video game uh you need
to hit rock bottom to believe there's a god uh
there's people that don't hit hit rock bottom
right they just believe in god because they were
told that way but uh you think that's a big factor
into making people think there's something out
there I think having near -death experiences
is helpful for getting some relationship with
God. Yeah, but Christopher Hitchens was pretty
famously stalwart. Even on his deathbed, he was
an unwaveringly atheist. A pretty smart and thoughtful
guy. I bet if he had stuck around another 10
years, then... I wonder if his opinion would
have changed. There's a lot of good discussion
going on in the world. Some new ideas. Every
now and then I used to think that there weren't
any new ideas, but I'm seeing some pretty interesting
ideas still. And I don't think they'll stop.
Yeah, okay. Now, final. No, this is the final,
final one. Are there two movies that you want
to recommend? What are your two favorite movies?
Which ones would you say? Do you have any in
mind? I like Blade Runner. I don't know if that's
an NPC answer, but that movie speaks to me. Blade
Runner. Yeah, Blade Runner. Let's see, this one?
The original, the sequel is horrible. And the
sequel was very, we got good reviews from the
audience. Oh, this one. Those people are wrong.
1982? Yeah, yeah. I haven't watched it. Okay,
but good to know. Keep it in mind. Yeah. That
one actually kind of touches on a lot of the
current sort of epistemological questions of
AI and the nature of consciousness and humanity
and all that stuff. Yeah, I don't watch many
movies these days, but that's the first one that
popped into my mind. Okay. Know any other one
that comes to mind then? Apocalypse Now. Apocalypse
Now. I've heard about that one. Hold on. Let
me see. Oh, okay. The guy, Dina, recommended
this. I actually... Because this is the father
of Charlie Sheen, right? This guy, the one that
produced it. And he acts on that movie, right?
Did you watch Benny Chance, the Charlie Sheen's
documentary on Netflix? No? No. He talked about
this movie and that he was there when his father
was doing it and all that stuff. Yeah, but Dina,
the Ovi Wright guy, also recommended this movie.
I think I'll have to watch it. Yeah. I'm also
a big fan of the book. I have a draft of a screenplay
that's kind of like an adaptation of the book
to Afghanistan, the Afghanistan war. I'm amazed
that no one has made this yet. It's such an obvious
this needs to be made. The Afghanistan war is
like... It's like the Vietnam War on steroids.
On steroids. In all the wrong ways. We need Chuck
Norris there, right? It's not really a humorous
movie. Any final thoughts? Oh, just, man, I keep
saying final, final, final. No, but. what is
the best way to support new vim is it through
hold on my microphone is acting up is it through
donations or what is the best way to monetarily
support new vim yeah the the donations go 100
to development work we don't use it for made
up administrative costs or anything like that
i mean When someone can work on it full -time,
we pay them from the donations to work on Neovent
full -time, and one of the outcomes of that is
what I call UI2, or it's also called the re -implementation
of the messaging interface, which I forgot to
demo in Neovent 0 .12. A contributor named Luke,
L -U -U -K, worked on that. and so that was one
use of the donations but uh it's gone to many
other purposes and uh yeah but being able to
do deep work gets good results and you can't
you can't always do these things on nights and
weekends especially the the really deep things
and that was a deep change and where should people
go to donate like to the github page or what's
the best where's the best place they all redirect
the same thing so if you go to neoflim .io then
You can click on, I think... Let me go here.
Well, the footer on the front page has a link
to our sponsors, but actually we need to do a
better job of, I think, linking to it. So here
in sponsors, right? Yeah, if you click on that
campaign link, it goes to that. So this is one
way. This goes to our Open Collective account.
okay you can also just go directly to open collective
but a while ago github was matching donations
i don't know if they do that anymore they probably
don't okay okay any thoughts on corporate sponsorship
like would it benefit new of them let's say that
a big company would say hey um There's this amount
of money that we would like you to have just
for supporting Neovim so you can create new features.
What are your thoughts on corporate sponsorships?
Are they eyes that you don't want to get into?
You don't care? Do you have any thoughts on that?
Would it be nice? Yeah, I mean, it depends on
the arrangement, but we do have corporate sponsors.
Meta gave us $10 ,000 two years in a row. That's
very appreciated. And also our sponsors. on our
homepage. Um, I guess they count as corporate
sponsors, although I think they're more like
startups, but, uh, I think we would be eager
to consider something like that unless, you know,
there were some weird terms and conditions, but
I don't know. Everyone has a price. And ultimately
the only thing like, as long as what comes out
of it is like open source code that makes neovim
more useful i i don't think it would be bad like
unless they asked us to add telemetry or or something
like inside of neovim like we we for example
have the work terminal the work terminal that
require you to sign in yeah we have rejected
offers to add logos to our readme just because
it makes the readme look cringe We don't want
our readme to look cringe. So we do that on our
website where it doesn't look cringe. It looks
sweet. So we do it there. But we don't put it
on our readme that's pretty just tacky when people
do that. We don't do that. So we also would not
do ads inside of NeoVim unless it's like... a
lot of money then maybe but like i don't think
i don't think the ad space in neovim is worth
10 million or 100 million dollars to anybody
so i don't think there's a risk of that but like
but consider like imagine that that did happen
as a user hold on a second that means we can
now fund like 10 full -time developers like we
could just take the whole core team and say guys
we're gonna work on neovim for like A few years,
just like full -time. Doesn't that sound good?
It sounds pretty good. I don't have a good result.
And yes, we have to show a little ad on the intro
page. That sounds like a good trade -off to me.
As long as it's not like a pop -up that pops
up when you're editing your config or something.
Now, let me ask you a question. Would you like
to have the ability to stop working at Amazon?
I hope your employer doesn't watch this and that
they don't care. Would you like to have the ability
to stop working there and dedicate full -time
to Neovim? Yes, I hope they are watching this.
Give me a layoff. Give me a severance offer and
I will take it. I'm tired of it. So would you
like to dedicate full -time to Neovim if open
source was different? If people actually supported
open source projects, would you like to live
off of open source if possible? There's like,
there are like certain things I want to accomplish
with it. And I would take, you know, some part
of a year out of my life to try to get these
things over the fence and then see where it goes
from there. Something that I have not done a
good enough job on is like finding kind of more
ways to fund the project, like maybe through,
I don't know, having like an official taxable
entity or something like that. That requires
lawyers and it requires paperwork. And it's just
something I haven't done. That's a miss from
me. Okay. As they would say at Amazon. Okay.
Hey, Justin, really appreciate all your time.
And we've been here for three hours. Just the
last thing that I want to say, just want to thank
the CEO because I have. People that support me
as well that subscribe to my memberships. There's
a guy that pays $50 a month. I'm ripping him
off. I feel like I'm like, I don't deserve it,
but he still does it. It's web23 .com. Appreciate
it. All of the other members. Thanks to you,
Justin, for your time, man. Really, really appreciate
it. I'm going to edit this video. And I'm going
to post it. This is going to go unlisted now,
so people won't be able to watch it. There are
some folks going to come and say, oh, and it's
now behind the paywall. And no, man, I'm just
going to unlist it and I'm going to edit it.
And then I'm going to post it probably this coming
Friday, today, Sunday. Yeah, Friday is live.
work and all that stuff gets in the way so by
friday i'll have it posted it's gonna be available
as a podcast as well in spotify and all those
things so really appreciate it any final words
no thank you for having me and uh thank you to
everyone who watched and sponsored this video
appreciate it thanks chat thanks justin see you
bye -bye bye