I remember you being quite persistent, but that's
okay. I got what I wanted. Well, yes. I think
I bribed you a little bit. So, Arch or Gen 2?
Or Debian? I don't like group box. I think it's
a thing for old people. You take that back. You
take that back. Don't want to brag, but I will,
of course. I've also created the default color
scheme. For Neovim? For Neovim, yes. It was a
lot of back and forth between me and Justin.
Justin M. Keys, which we interviewed. He also
likes boring colors, it seems, right? It was
basically, Justin said, it should be this one.
I said, okay, boss. Why did you move from Vim
to NeoVim? Because it was cool. What you do is
copy these three commands. Why did you say like,
okay, no, you know what? I don't want witch key.
I don't want anything to do with it. I don't
like full key. So I'm going to create mini .clues.
Don't put those words into my mouth. I see you
use ghosty. Is that fear on missing out as well,
like NeoVim? 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
Linkarzu. 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. How do we pronounce your name? That's maybe
a little bit difficult topic, but I think what's
the most, the best compromise here might be...
Yevgeny. Maybe Yevgeny. So it's Yevgeny. Yevgeny.
Yep. That sounds okay. That's the mix between
the English, how I wrote it in English, and how
my actually, the name sounds in Ukrainian. But
in Ukrainian, it is much more difficult, I think.
It is Yevheny. Yevheny. Yeah. Oh, maybe it will
be easier for a Spanish speaker, actually. Yes,
it is Yevheny. Yevheny. Something like that.
Something like that, yes. But if you want, you
can call me either way, actually. Okay. Now,
why a Chesnovsky? Do most people call you a Chesnovsky?
Because Chesnovsky... What is that? Is that your
last name? Yes, it is my last name, almost to
the letter, yes. Okay. How do people call you
then? Do they call you Yevgeny or do they call
you Ichasnovsky? People, like you mean real people
outside of the internet? No, internet people,
like in the Neovim community, let's say. In the
Neovim community, it is Ichasnovsky, yes. Okay.
E or E? Ichasnovsky. I'll be honest with you,
only this one time. because this is the first
time I'm actually speaking out loud. All the
rest of my conversations are written in English,
be it metrics, mostly GitHub, Reddit, Blue Sky
lately. But that's it. So I pronounce it E because
as in, I don't know, E -ink. as in this technology
of i think the if e a b c d e it's not a it's
e so uh i pronounce it each you pronounce it
however you want because it is a username yeah
people always ask me so how do you pronounce
it and i'm like i don't know just pronounce it
however you can yeah some something similar happens
then i guess yeah Okay, so Ichasnovsky or Yevgeny,
right? Yevgeny, yes. Yevgeny, okay. Ichasnovsky
is going to be easier for me. So thanks for joining
us today. Thank you. For people that don't know
you, what is it that you do in the Neobim community?
You want to share a little bit about you? Like
you have some plugins. What do you work on? No,
I don't have plugins. I have one plugin. One
plugin? Only one. No, not so much, yes. I am
a NeoVim local plugin developer. My main creation,
I think, is mini .envim. It is a one single plugin,
but it contains at the moment 44 different modules.
And it is almost my entire NeoVim config at this
point. There are some things that I would like
also to replace in the future, but maybe not
now. Okay, so this is pretty much then your own
NeoVim config, but in modules, right? Well, it
almost started that way, yes. Initially, it was
the idea that I want to own most of my NeoVim
config just for fun. No other reason. Actually,
there was one reason. I wanted to have both NeoVim
Lua setup and VimScript setup. And I also wanted,
because I read that it was nice and cool, to
have one file .vmrc or vimconfig because you
will be able to just copy paste it on the remote
machine and you'll use it as your regular setup.
So it started that way and I wanted to create
some basic functionality in a very simple, well,
spoiler, minimal way. And I started with status
line. Then it was probably tabline, the thing
on the top. I don't know the order after that,
but after about fifth such module, I started
to also translate this Lua implementations into
Vim script. So they were in sync. And I had almost
the same setup in NeoVim and Vim. but Lua in
NeoVim and VimScript in Vim. I could have done
also only VimScript implementation, but I thought
it was different times. It was NeoVim 0 .5, I
don't know. When you started your NeoVim journey,
at what version of NeoVim? Oh, I didn't start
too long ago. I started, let's say, a year and
a half ago, if I remember correctly. So 0 .10
probably. I think. Yep. Okay. So you're a newbie
basically. Yep. Yeah. I'm a newbie. Okay. No,
I didn't say noob. I said newbie. It's not as
insulting, right? So it was, how would I describe
it? Wild, wild west. of Neovim configuration.
Because some like to say it was a Lua apocalypse
of Neovim. Because 0 .5 is the version when Neovim
started to support Lua natively. So people could
start writing plugins in Lua. And they did. All
they did. There were so many Lua plugins that
you actually probably use right now that started
in that area. Which were they? Do you use LuaLine?
I use LuaLine, yep, yep. It started basically
pre -0 .5, I think. So when 0 .5 was nightly
in development, it was very long. release window
of 0 .5. I think it was about one and a half
years between 0 .4 and 0 .5. And a lot of plugins
started to actually exist back then. So LuaLine,
which once, well, Minitot and Vim, it was pre
-0 .5. GitScience .envim also started. Invent
Blankline, it was one of the first... Sorry.
It was one of the first plugins that I think
were popular. So, yeah, something like this.
So I've written... Let me see. I think it was
13 modules in total. when I decided to make them
public, organize them into a separate plugin.
I think I came up with the name after the fifth
module. I don't remember the order again. I can
look in my .files, but maybe later. After about
fifth module, I decided to actually... Maybe
it sounds a bit cheesy. But I decided to give
back to the community and make them public. And
maybe somebody will use it later. And here we
are four years later. We have been planning for
this interview, like, I don't know, for the last
six months, maybe? When did I reach out? Yes,
I would like first to apologize to you specifically
in public. because you did reach out not six
months it was about around March this year I
think because I did have to decline hopefully
politely I don't quite remember no yes okay thank
you because it was not quite the right time for
me to do on the camera it just just not the right
time And then I remember you being quite persistent,
but that's okay. I got what I wanted. Well, yes,
I think I bribed you a little bit because I asked
a few people to do an interview with you. So
I think it worked quite all right in the end.
Yeah, it did. So in the summer, I genuinely wanted
to do it in the beginning of the summer. But
by that time, I knew that I wanted to do some
work with media .envim that will become outdated
very quickly if we do an interview back then.
Because I basically wanted to move to the...
a separate github organization so it would have
been hsnovsky slash nvim on github but now it
is nvim -mini .mp and the website also was a
good idea i think it was the result of jump scare
i'd say but that's okay Jumpscare, I don't know
if you saw that, I was banned on Reddit for a
month. Why? Genuinely, it was the false positive
result of Reddit algorithm. Not moderators, not
human error, just false positive result. It was
10th of July. I decided to share my new color
schemes. Four of them. Yes, that does matter.
Four of them. Each one has dark and light variant,
of course, as one does. I don't use light variants,
I must admit. I also do not, but they should
have it. Yeah, but I see that very based people
use light themes when there's a lot of light
around. But I don't do it. I'm maybe like a vampire
or something, but I'm not in the light too much.
But I guess that's when they are useful, when
there's a lot of light. I also heard that it
is useful when you're a bit older or have maybe
a bit worse eyesight. Maybe. Could be. But I
also think that dark color schemes are more usable,
maybe. But there is basically a very deep color
scheme, a color theory reasons behind it. We
can talk about it. I don't know if you are interested
in it, in this, but dark, there is a meaningful
difference with how human eyes work. when it
comes to light text on dark background. Okay.
What do you want to share about that with us?
So light text in a dark background, what we do
in the terminal, right? Maybe in the terminal,
maybe not. Yeah, there's people that use light
themes on the terminal. I was thinking about
NeoVim only, but yeah, there's people that do
light themes as well there. uh basically basically
what basically ah yes basically uh can you share
my screen now yep let me switch to it hold on
there i can see it so uh where do i start um
human eyes uh have very complex mechanism of
uh perceiving light and colors i i i don't know
much here but But there are many studies that
try to create a color space, basically a representation
of colors that is close to what human eye can
see. It's very difficult and confusing, but basically
what there exists some such thing as How is it
called? I don't remember. It was one and a half
years ago. What's the blog post? Okay, so basically
the color space that is uniformly... I don't
remember. Color spaces that try to mimic how
human eye perceives difference in colors. and
try to translate that into numbers. So it's not...
There is, of course, RGB. You know that. A color
space. Red, green, and blue. If you convert that
to numbers, like red from 0 to 255, the same
for red and green, and you have two colors, and
you compute the difference between them in any
meaningful way, the difference the same number
difference in for example light colors will be
perceived by human eye differently than in dark
colors okay this is basically one of the reasons
why dark background or rather light foreground
is useful it allows to have can you see it yes
yep i see i'm clicking yeah In lighter colors,
there is more possibility of creating more saturated
color for some hues. A hue is basically a color
without lightness that is of the red. So it's
red, orange, green, that is hue. In, for example,
blue and purple, You can see that darker colors
can have more saturated values. Do you understand?
Am I making it clear enough? Or maybe I'm all
over the place right now. So I see light color
here. There. where your cursor is that is light
that's lying at the bottom darker right yes that
is a gray color so that is low saturated colors
and to the right is highly saturated colors so
okay so it is uh more vivid colors oh yeah okay
so and like this purple one does it go better
with white or dark background based on what we
see here It allows more saturated colors with
darker shades. Okay. So, you see that it is below
the center line. It is dark. And, for example,
yellow, that's around yellowish hue. Yep. Around
yellowish. Yep. It is very saturated on light
colors. So, usually, having light foreground
allows for more saturated colors, usually. Okay.
So you can see, for example, orange is more saturated
for lighter colors. Yellow, green, but it starts
shrinking. Cyan also, that's a cyan color around.
Light blue. and around the blue it's the and
purple it starts to become more saturated towards
uh darker colors okay i believe this might be
the reason uh why purple purple backgrounds color
schemes are so popular oh it is a theory it is
a hypothesis i would say but it is what it is
and it starts to go up again around red so if
you have light text colors which is what happens
with the dark color schemes because dark color
schemes are color schemes that have dark background
you should be able to have more saturated foreground
colors and they will be more distinct when it
comes to comparing each other. By the way, what
I'm showing right now, it is the color space
perceptually uniform. I remembered. Okay. Those
color spaces are called perceptually uniform,
which means that difference in... Do you see
my pointer right now? I see it. So basically,
this is a color. A color. Some color. It has
a hue value 104, which is around yellow -greenish.
It has a chroma 10 and lightness 89. If I, for
example, compare it with this color, for example,
something like this. I can subtract hue from
previous one. I can subtract this chroma from
previous one. I can subtract this lightness from
previous one and take absolute values of them
and sum it. This will be one way to compare these
colors, to compute the difference. It will demonstrate
the same difference in colors. no matter which
two colors I compare. So it will be the same
difference as four darker colors, for example.
But it will have to be more difference in hue,
for example, if we compare the same lightness.
But anyway, that's color theory and it is very
complex. And it has its roots in biology, which
means it is not very precise science, but not
because of biology itself as a science, but because
it is a study of life, and life is not precise,
unfortunately. It is a result of evolution that
the human eye is just the way it is, and it has
to be studied the way it is and uh not for any
particular person but across all human human
species basically and it's very very very difficult
to do because the researchers basically have
to invent own ways how to compare and scientifically
verify their findings because they cannot just
eyeball it because they have their eyes also.
It's very complex. I guess that's why some people
like some color schemes and some people don't
like other color schemes, right? Everyone has
different eyes. I don't like group box. I think
it's a thing for old people. You take that back.
The colors are too dull. I like bright colors.
You don't like bright colors, right? You like
more like... I like bright colors. Bright as
in... I've seen your color scheme, yes. I slightly
judged you a little bit when I saw it. Is that
for weak eyes? It uses highly saturated colors,
yes. Exactly, yep. I did use it in my very first
Neolim color scheme, which is called Midi Scheme.
But I guess as you age, you get older, you mature,
and you move away from highly saturated colors,
right? Because they tend to be a little bit hard
on the sight, right? I'm not sure. Yeah, you
can share it now, I think. Basically, this is
what my first creation. color scheme was it is
a variant of base 16 and which is of course there
is mini dot base 16 module of mini and vim it
is very highly saturated i i really really love
the yellow on blue okay combination and you can
see right now in practice i have dark blue background,
which is very saturated because it is around
that hue that allows very saturated dark blue.
And I have very saturated light yellow because
yellow is the color that allows very highly saturated
white color. So this is very saturated color
scheme. I don't know why I liked it, to be honest.
I have my theory. I have my hypothesis. The hypothesis
is that I created it on my monitor that was a
bit far away. And maybe, just maybe, I'm not
quite sure, it was maybe a little bit dusty with
time. So it didn't have that much, that good...
color representation, you know? So I needed to
have more saturation in order to see the difference
between colors. Maybe that wasn't the reason.
After I switched to my laptop, which has a much
better screen, I basically used this one, which
is similar, but a little less saturated. color
scheme. But after some time I decided it was
time to go back to make my own color scheme basically
because that was base 16. I copy pasted the theme
base 16 color scheme for Vim but made it Lua
and tailored it for NeoVim. But this one is mini
.hues, which is my own color scheme, and which
was used as an inspiration, basically, for default
color scheme. Because I don't know if you know
that. I don't want to brag, but I will, of course.
I've also created the default color scheme. For
NeoVim? For NeoVim, yes. This one. oh i didn't
know okay yeah yeah it was my first big pr after
uh it was a lot of back and forth between me
and uh and justin justin m keys which were interviewed
he also likes boring he also likes boring colors
it seems right uh he likes its own colors i think
the main constraint here was that it should be
It should resemble Neovim. So Neovim logo colors,
which is green and blue -ish. A lot of different
blue hues, right? Blue, like... No, no, no. Well,
the primary color, what we ended up deciding
on, because it was literally a lot of back and
forth. I don't know. Maybe... Around six months,
something like that. It was in 2023, two years
ago, I think. Yes. And my initial suggestion
was very close to like that. But oh, this is
actually my random hue color scheme to more colorful.
It was more colorful. It had more colors for
syntax groups, and it had not a great background.
But it was a lot of negotiations. Well, I say
negotiations. It was basically Justin said, it
should be this one. I said, okay, boss. He said
dictator then. No. No, he's not. He is, how do
I put it? He has his own vision, that's for sure.
But he is quite flexible in areas that I think
that he knows other people might have more input
that he can provide, I think. so with the color
scheme i did a lot of study beforehand as i think
you couldn't see it prior in my gibberish explanations
about color spaces but when i'm not on camera
and i have time to actually write stuff i think
explanation about contrast ratios about accessibility
uh i i took a lot of time into actually quantifying
that so and i guess you couldn't come to justin
and just tell him okay so look i want to use
this cutter scheme because it looks beautiful
right because he was going to be like but but
why so you had to have a lot of backup right
to to back that color scheme so that he would
listen and say ah makes sense yeah Let's think
about it. I'll be honest one more time here.
It was not quite to convince Justin. It was also
to convince me that I'm doing the right thing.
Because if I cannot back it up, it is actually
a matter of taste. But if I can back it up with
actual numbers, this background with this foreground
has enough contrast ratio that these hues are
different enough because they are created using
perceptually uniform color space and because
they have this much difference between them.
So it was mostly for me and for future generations
to see. Yeah, but colors are extremely complex
because I have noticed you're not going to agree
with everyone. And depending on the monitor that
they have, if they have a 4K monitor, they will
see colors differently compared to my 1080p monitor.
I'm not going to look at the colors the same
way that someone with a better monitor does.
Man, it's extremely complex to please everyone.
What happened with the pen? What? With the ban
on Reddit, because we were talking about the
ban and then we jumped into colors. Let's go
back. I created... You've seen the random hue
color scheme I showed previously. The one that
you showed, yep. Yes, it was random as in its
name, random hue. It was a random color scheme
that used beanie .hues. module of mini .envim.
But at the time, I also knew that I wanted to
create not a NeoVim distro like LazyVim, but
some config example that primarily uses mini
.envim. I knew that. I knew that for about one
and a half, two years that I wanted to create
that. I only had random hue, which was relatively
beautiful to my eye color scheme, but it is not
for everybody to daily drive random color scheme.
Because I did daily drive it for about three
or four months. Basically, when you log in into
NeoVim, it chooses random color scheme for you.
Okay. It's nice. It works. Some color schemes
I had to cheat and restart a couple of times
because I didn't like them. Basically with the
dark yellowish background. That's not for me.
But we'll see. And so I wanted to create some
static color schemes. Well, normal ones, not
static. Normal color schemes. And I did daily
drive them for about... several months up to
that point. The four color schemes are inspired
by seasons of nature. Mini -winter, mini -spring,
mini -summer, and mini -autumn. The blue, green,
orange, yellow, and purple, basically. And I
decided to release them. Up to that point, the
release of the module or something mini -dotenvim
or something Neovim -related, really. For me,
it was to post it on Reddit, on r slash Neovim
subreddit. Okay. That was the release for me.
And I did. I did post on July 10th this year
eight screenshots of color schemes, because it
is four color schemes with two variants. And
basically, last -minute decision. Very dumb last
-minute decision. was to add to each screenshot
a link to color scheme, basically. But that link
was the same. So what Reddit thought I did, I
created a post with eight very similar screenshots.
because they are the same text, just different
colors. Each one with the same link, which is
very suspicious. I agree. It was my mistake,
and it's probably a good decision by Reddit filter.
But also, I think what contributed to that ban
was that I also created a comment under that
post. written some stuff, here are my color schemes,
hooray. But after that, I immediately noticed
a typo and edited it. Okay. I might have done
it also the second time. I don't quite remember.
But on the second or third time, after I wanted
to edit it again, because I did notice something
again, Reddit said, you cannot do that. I said,
why, Reddit, why? And it turned out I was shadow
banned because I got an email right away that
we are concerned for your safety, your account
demonstrated some suspicious activity, which
it did. I agree. I fully agree it did look suspiciously.
But it was honest work. I would say. So it asked
me to change my password. I did immediately within
10 minutes. And I was able to log in. My surprise
and horror, all my previous posts were hidden
by the Reddit algorithm, which it is the result
of the shadow ban, as I later discovered. And
I tried to appeal, made multiple appeals. In
total. I read a lot of stuff how to do it. Because
basically all things NeoVim related that I did,
I did through Reddit, announced them through
Reddit. They were searchable in all major search
engines through Reddit. The only thing that's
left is GitHub, which is okay. of course but
uh all those announcements and conversations
and comments under uh posts were done and if
you search in google you get to a reddit post
usually right so yes yeah so i was very upset
very uh but oh well i decided to try to appeal
they didn't work it was july 10th again after
About a month, I thought, well, this might be
a good opportunity to create a website and to
actually own the content that I create. And if
when there is an opportunity for me to post on
Reddit, I will do it via blog post and just share
a link to the site. That's it. Something that
I noticed on Reddit is that if the post is too
long, It goes through moderator approval. But
if it's like extremely long, because I used to
share a video with a lot of text, right? The
timeline for the videos. The timestamps. The
timestamps. Yeah, I know. The entire thing. And
it goes through approval. And I was like, I asked
the moderators, but why does it do that? And
they're like, it's Reddit. And then I said, okay,
let me try just posting the video without the
timestamps. And it goes through, right? if someone
watching this out there post like really long
um posts of course on reddit they might go through
moderator and uh there's not much but it's only
if it's huge if if the text is it's like a lot
like five five thousand words well it makes sense
i cannot blame this side it makes sense to do
that yeah yeah yeah it does it does but i didn't
know i was like but why does it go through mother
and some of them wouldn't go through approval
and some other did and i was like why does it
do that but it's if it's a long post it does
it yeah but to finish that story on a bright
note after about one and a half months literally
i decided literally on august 23rd i decided
to create a new account okay and explain maybe
to people or just try to acquire more karma to
be able to post again but the day i decided to
do that i wake up and on reddit by total coincidence
i swear there was a post from some user asking,
there was a mini .env author here, very active.
Does anybody know where he is? What's the matter?
So I decided to, it's still locked, that post.
I decided to still create a backup. Not still,
I decided to make it that the new account right
away created it. and described what happened,
basically what I told to you, but more concisely.
It got upvoted. Many people shared, that's terrible.
I said, I know. And this was with your new account,
right? With the other account. Yes, yes, yes.
Because the old one, you cannot post anything
at all. I could post it, but nobody could see
it. oh that's what shadow bat is okay it's uh
it's what i learned is that a pretty clever way
i think to uh deal with spam bots okay bots uh
you don't show anything that they are blocked
they keep spamming they they think they work
great yes but nobody no nobody sees them Okay,
makes sense. Yeah, so from the new account, I
described what happened. And by sheer miracle,
within... Ah, no, there is a moderator, Lukas
Reinek. Lukas, let's just call him Lukas. The
creator of Rainbow... No, indent blank line.
Indent, yeah. Yes, he is the main moderator there
on Reddit. And he answered, well, that's awful,
but if you have links to the posts that were
hidden in the Neovim community, I can see, I
think I can make them visible, but they will
not show in Google. in any other major search
engines uh i said great thank you that's very
helpful of you i i shared all the uh posts because
i did have them all the links just in case and
he did he did go one by one uh manually clicking
on them and making them visible which i'm very
grateful to you lucas if you happen to see this
i don't know but after that within hour or two
i get a direct message on reddit on the ua account
that with text something like this can you check
your previous account it should be restored okay
who are you why should be restored i don't know
if it is it a scam about a scam or i don't know
i check It is restored. I don't know what to
say. I have tears of joy. I laugh through the
roof for Hooray and so on. But I answer, yes,
it is. Thank you so much. It turns out that it
was a person who works in Reddit in the company.
And he is a new user or just a new subreddit
enjoyer. I don't know. But he shared this with...
team moderator with reddit admins okay and they
saw that it was just a false positive from the
algorithm and they restored the account immediately
so i have the e chasnovsky a chasnovsky account
on reddit which i'm very happy about but it did
make a jump scare which provided very beautiful
results for me in the form of the website which
i'm very grateful i think when life gives you
lemons you make let's say lemonade okay so now
your website is gonna be like the main source
you know for for the information right i plan
to yes uh i plan to also uh i won't say move
off github but i do plan to first introduce mirrors
outside of github or the plugin itself. And in
the future, I don't know how distant. It may
be several months, maybe one or two years. I
sincerely don't know. I want to self -host a
Git server and to make it the primary source
for Media .nv plugin. So a lot of people are
moving over to Codeburg. Have you thought about
it? yeah or no uh it it is it will be one of
the mirrors okay i've already i've already created
their my username i also created an organization
for nvims the dash mini uh i have that the other
one i plan to do i think you you might not have
heard about it do have you heard about uh the
site called tangled nope e -a -n G -L -E -T,
Tangled. Let me look it up. Tangled .org. It
is a Git forge that, yeah, it is a Git forge
that is based on AT Proto, AT Protocol, which
is one of the main creations of Blue Sky company
right now. Okay. Blue Sky, it is not only the
Twitter. alternative right now or microblogging
site they also create a well sort of decentralized
protocol a protocol for a decentralized social
stuff open social it's usually called in the
internet so Tangled is very much it is very new
it is basically planned to be a github alternative
what is called git forges not only a git server
but git forge where you can file issues create
prs pull requests or merge requests or patch
requests there are many of them okay i spent
i spent a couple of months ago quite obsessively
obsessively researching this this topic because
uh sometimes uh i do think a lot about self -hosting
but and uh the research it was a lot basically
because and why github why are you planning on
are you leaving github completely like in the
future or you're you're still gonna have it okay
just as backups the other options right well
Let's just say, unless something really terrible
happens with GitHub, like really terrible, I
don't really know what. I don't think it will,
but maybe, but probably not. I do plan, of course,
to have at least a mirror on GitHub, yes. But
it is very probably, probably very distant plans.
It is not immediate plans, probably very distant.
Immediate short -term plans. are to just create
off GitHub mirrors. And that's all. All interactions,
issues, PRs will be on GitHub for the foreseeable
future. But I understand that people, the ever
-growing number of people do not like to use
GitHub. And I get that, honestly. I can understand
it. I'm still... tied to this as a platform but
oh well yeah okay okay makes sense now there
was a lot of confusion for me with your repo
because it's like a repo and it has a lot of
modules but you already changed that so now it's
in a different organization same organization
you mind explaining How all this works is I don't
understand. I know there's mini .envim. Why don't
we start from there? What is mini .envim? How
do the modules work? The repos? I think we can
switch to your screen if it makes it easier for
you. My trackball, I don't use mouse at the moment.
My trackball is on the left side because this
is the only way I can set up the camera. Okay.
Media .envim is a plugin. Okay. One single plugin.
You can install it. This is the current form
of how to install it prior to NeoVim 0 .12, which
will have the built -in plugin manager. But until
then, you can just bootstrap it, install it,
and you'll have 44, at the moment, there will
be more, different modules. All of them... All
of them are separate, independent, provide functionality
that is actually useful in day -to -day life.
Most of them, apart from these three. I have
a question. Hold on, I'm sorry to interrupt.
What do you use for the picker? Because for the
picker, I use one by Folky. What is it called?
I don't know how to pronounce Folky, by the way.
Folkaf? I don't know, but... You know how to
pronounce it. I think you pronounce it correctly,
Folky. bulky okay okay i i think so yes okay
i use um which is the snacks snacks snacks .picker
yes yeah picker yeah you have one for a picker
as well of course of course i do this one okay
this is uh this is mini peak mini dot pick what's
the difference between this okay because here
you can search right and many that files you
can see like many files many files it is Or it
is File Explorer. Okay. I use MIDI files and
I use NextPicker. But you have a picker as well.
I'm sorry. Of course. Of course I do. It is the
most complex module to date because it has to
be performant. Which it is. It is very performant.
This is the MIDI .pick. which has these built
-in pickers for files for live grep or grep i
think for buffers help tags for command line
output you can use it already it is enough in
itself the the the lisan vimgaib showcased it
Because I did notice some spike in midi .pick.
Clones, git clones, GitHub can show you that.
I did notice some spike when he mentioned it
in one of his videos that he at that point at
least preferred midi .pick. That's all that pickers
are built in. Can you create your custom filter?
Yes, yes. You can create anything. Where is it?
You can create custom picker from ground up.
It can have custom... name, working directory,
it can match differently, like the, for example,
file speaker has default matching, which is very
simple. The idea was to create first, performance,
and second, simple enough that users can actually
understand what's going on. Because many pickers,
well, I won't say many, but what tends to happen
with fuzzy pickers, in my mind, in my opinion,
is that the results are a bit too magical, at
least to my taste. For example, some pickers,
when you type, I don't know, two letters, they
prefer to first match How do I describe it? To
match, to... Search for the exact match? No,
that's not it. Not for exact match. Okay. They
tend to give more, to prefer more those items
that have, for example, first letter as the first
letter of the directory. and the second letter
as the first letter of the file name. So the
logic is that if you want to find a file, for
example, like here, a test .dir .visit file,
you just type tdf, and it will match it first.
But in Minipig, if you type tdf, it prefers...
to, it prefers matches that have, it prefers
items that match this query with the shortest
distance between first and last match. So this
is, here is one, two, three, three letters between
T and F. Okay. If there are three letters, if
several items have match. with the same width,
which is three letters, well, like first and
second here, it will prefer the one which has
the first match closer to the start of the string.
And that's basically it. That's the whole matching
algorithm. You can see it right here. First match
starts at 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, I think.
Tenth letter. the second match has the same width
but it starts later so it is preferred less next
matches are start even further and they preferred
even even less even more less even less preferred
less if i can navigate or it could be a lot ah
here it is let me ask you something does it have
yeah a free cnc or recent option uh uh it doesn't
have uh at the moment not in the moment it doesn't
have in minipig itself okay but uh as as as is
the case uh often in minute and vim uh there
is another module for that okay uh there is a
like a job just here many visits many visits
is is a uh module that automatically tracks your
file and directory visits in a persistent manner.
It basically stores it on the disk and allows
to sort those visits based on how often you visit
that path. And how recent, basically, Frequency.
Frequent and recent. So it is in a separate picker.
Okay. A separate picker, this one, which is visited
paths. See? Visited paths from all working directories.
This is what my Frequency algorithm shows right
now. So ghosty config, change log, pick because
I recently did it, visited it. And a lot of other
stuff. So you have to open a different picker
for this, right? For Frequency, yes. For Frequency?
Okay. For Frequency. For Files Picker, it just
asks Ribjarep, RG, Klee, to please give me a
list of files. it does so very quickly and file
speaker just shows that after that it is it the
match is done by a mini pick itself it is purely
lua so it's fairly fast and without overhead
okay there are other other there are other pickers
that are also great snake speaker is great it
has It might be a bit complicated, but it works.
And it works good. There is also FZF -Lua. Also
great. It works. But it has also slightly different
approach. It uses FZF CLI tool directly in what
basically is, I think, built -in terminal window.
It has its... It has its downsides, it has its
upsides, but I really like Minipig. What can
I say? You're biased, of course. Of course. And
Telescope. What about Telescope? Have you ever
used it? I used it prior to Minipig, yes. Well,
basically because it was the one picker at the
time, yes. I used it, yes. It was fine. How do
I put it? It was a revelation for me to actually
start using fuzzy pickers because I didn't use
them prior to that. It is really a cool idea.
And I did use it. Could we say, do you know if
there were any pickers before? Because DJ is
the one that started with the telescope, right?
Yes, yes, yes, he did. Did he then... create
that idea of fuzzy pickers? No, no, no. Of course.
Well, at least FZF is a thing for a very long
time. Oh, okay. Yeah, FZF. But I say NeoVim plugins.
Did we have any? Well, prior to NeoVim, there
was Vim. And for Vim, there are a lot of fuzzy
pickers as well. Okay. Well, I say a lot, not
a lot. But they definitely were. I think, yes,
Snap was a fuzzy picker. VimScript, I think it
still is around. It might be. Okay. Because Vim
users will use Vim. Okay. Why, man, we're all
over the place. We're all over the place. Yes.
It doesn't matter. We will remember and we will
come back to your demo. But I just want to ask
you, why did you move from Vim to NeoVim? Because
it was cool. Okay, the cool kids were doing it.
No, not necessarily cool kids were doing it.
Why did I move? It was, let me, ah, yes, I think
I remember. My whole journey was a bit, it started
in, I think, 2019, 19 or 18. I saw on the internet
discussions about Vim versus Emacs because it
was a very hot topic, I think, even back then.
And I did try Emacs. I did. I didn't like it.
Mostly because I think it was a separate application
that I needed to install. It is okay. for people
if they want to use that. I just liked the idea
of Vim itself and its motions philosophy, its
text editing as a language philosophy. Like operators,
text objects, motions, like IW for inner word.
f to find all that stuff like d i w delete inside
word and it's like it's magic so i sticked with
vim at that point but not vim vim i at that time
used the tool ide called r studio because i worked
with r language still work a bit but at the time
it was more professional basically with R language
in R studio and I used a Vim emulation there
it was okay so I tried to ease myself into using
actual Vim I might have tried it late 2019 I
think actual Vim but I remember I remember one
episode very vividly. I think it was first or
second day when I started to try to daily drive
it in the office and work when I worked. Okay.
Where I worked back then. And someone wanted
me to share a link from my document, which was
opened in Vim. And I could not do it. I could
not copy into the clipboard. Yes, I could not
do it. I don't know. I didn't know how to do
it. I was very green back then. So I panicked
a bit and thought maybe a bit later, maybe when
I have more time to practice, maybe I then daily
drive it. But I did it for some time. Then COVID
happened in March 2020, in Ukraine at least.
And we were starting to work remotely. And for
me, it was, I'm so sorry that I have to share
this, but I started to use VS Code back then.
mostly because it allowed very easily for a remote
work and i could remotely connect to my working
computer and do some heavy data analysis which
i did back then on the work computer so i did
use vs code but with the vim emulation but not
just Not just Vim emulation, but the one that
comes from VS Code NeoVim plugin. Oh, I saw that
and I didn't understand the difference between
the Vim and NeoVim one. And I was like, I don't
know. What VS Code NeoVim does, it actually runs
NeoVim, actual NeoVim in the background and communicates
between VS Code's text. file buffer, I don't
know how it's called in VS Code, communicates
to the actual NeoBeam, does its work back there,
and translates it back into VS Code. So it's
not emulation. It's not a Veeam emulation, it's
actual NeoBeam that runs in the background. Okay.
I think, I'm not sure, you might correct me later,
I think Justin M. Keys, was heavily involved
in creating this uh might be might be probably
not the creator the creator was acevetlakov i
think it was on github but justin was heavily
involved in i think making it work so that's
where i thought that neo vim is cool basically
and i i've searched my dot files today in preparation
for this interview. And I think my actual NeoVim
config started around summer of 2020. It was
Vim script back then, but I used NeoVim. Started
to use NeoVim probably because of VS Code NeoVim
plugin in VS Code. So the first time that you
tried, well, the first few times you got defeated
by Vim motions and NeoVim, right? Yeah, okay.
No, not Vim motions, not Vim motions, just clipboard.
Oh, the clipboard. Oh, the system clipboard,
yeah. Because there's a lot of people that, you
know, try to start with NeoVim. Because you see
YouTubers flying around in NeoVim and copy -paste
and from here to there and from this session
to this other session, open file, you know, and
it's like, man. That seems nice. That seems easy.
Let me give it a try. And when you give it a
try, man, it's like, I remember, you know, my
first few rounds with Vim, you know, this was
way, way too long ago before Niven was a thing.
And I didn't like it. I was like, I have to do
it. Why do people do it? That's what I wondered.
Why does someone go through this like H -A -K?
Oh, man, just use the mouse, copy, paste, and
you're done. And I was like, no, I don't like
this. I tried it, like, to be honest with you,
I don't know, four or five times. And I was like,
no, no, no, no, not for me. Went to Nano. I used
VS Code. I'm not a programmer, you know, so I
didn't have to use it that much. But I was like,
no, no, no, no, not for me. Do you remember feeling
that way? Or do you think it's at the beginning,
the very beginning? try to not forget this feeling,
that feeling of people that are new to both of
them. But I think I start to forget how they
feel. Yes, that's a very big thing for me. And
one of the main motivations for... Well, probably
not the main motivations, but why... How do I
describe it? Probably that I enjoy reading and
helping people on Reddit, because they might
not understand some things, and it is a win -win
for me. I help them, and they already have helped
me. by providing a feedback on what things might
be complex for them to understand. It is both
for NeoVim and mini .envim, basically. So every
question, there are no stupid questions. Well,
there might be, but most of them that people
think are stupid are not. people have stupid
questions then it might be because documentation
is bad it might be because the actual thing is
not intuitive of course but usually it is a bad
document after there is a better help better
docs it might be easier for next people to start
adopting and daily driving. NeoVim, Vim, whatever,
something like that. Oh, yeah, yeah. So I think
NeoVim, a lot of options, a lot of tutorials
out there. Yes. So you have to make the decision
first. Do I build my own config? I try to learn
Vim motions while I build my config, while I
learn Lua, while I learn about plugins, while
I learn about the NeoVim documentation, or...
Should I use distribution, read the documentation,
don't understand anything about NeoVim, or should
I do something like kickstart .envim? Or use
Minimax, which is also a thing. Okay, that's
an option. Let's take a look at that. Why don't
you let us know first, what do you think about
distros? Is this a distro? What do you recommend
to someone just starting out with Neovim? Like,
I'm new. I don't know about Vim Motions, but
I see what these YouTubers do. The magic they
do when they switch between files, copy, paste,
you know, and, you know, select text inside quotes
and all that stuff. Yeah, yeah, yeah. But I know
nothing. What do you recommend to someone like
that? I would recommend what is recommended by
Neovim docs already. There is a page that helps
you what to do when you start. It used to be
just in basic help, but what it does is suggests
some pages to read. Lua intro, there is a help
tag, I think. Lua Neo Vim or something like that.
But the main starting point is Vim Tutor. Yes.
I think I also started with that. I'm not sure.
Maybe. It should be a good starting point for
people that don't know anything about Vim motions,
how Vim works, modes. because model editing is
indeed not a very intuitive concept for people
that come from Notepad++ or some other commonly
used editors. I understand that. But the Vim
Tutor is the place that most people recommend
and which I think I also started with. But I
honestly cannot remember. There is also this
site, I think, Vim Adventures. Yep, the game.
I used to play that with my daughter. Yeah, I
think I also played it a couple of times. Not
sure if it helped or if it was already after
I mastered it. who was aware of how vim motions
and vim works so bottom line start with vim tutor
read one or two documentations that are present
in neo vim itself maybe watch a couple of youtubers
that you think are a reliable source of information
probably watch the link arzu Oh, I've heard he's
good. YouTube channel. He's okay, I think. The
interviews are better, right? Interviews are
much better, yes. Oh, man. Ben, what do you think
about distros? Are you in favor of distros or
against distros? They're fine. People can use
them. It's just, how do I put it? I think half
the fun of using new them is to make it your
own. That's what most people say. Most people
who have gone to troubles of actually configuring
them, they might have told them, they might tell
it to themselves that it is actually fun. But
it is fun. For me personally, it is very fun
to configure NeoVim. It is magic, basically,
when you have nearly instant feedback of what
you have. You typed some words, you restarted
maybe new Vim, and it does the thing. It is magic.
Very close to magic. And maybe it is close to
a... Well, not close. It is an instant endorphin
rush, maybe, when you see something working.
When you install a new plugin and you can now
navigate files. Or install a new plugin. It works,
yes, right away. And you install a new plugin
and you have auto -completions in command line,
for example. That's awesome. Something, I like
that. People, usually, people who end up liking
to use NeoVim are people who like this kind of
activity, I think. Distros are a great starting
point, that's for sure, because it limits the
decision. decisions for new people. But they
tend to be a bit overly complicated. That's my
opinion. Both, well, not both. They look fantastic.
They work and feel great. LazyVim, EnvyChad,
Asteroid and Vim. In the early days, LunarVim.
Have you heard about LunarVim? Done, right? Or
not? Well, It is there, but it's not maintained.
What LunarVim did for me personally is that its
creator, I remember the, no, I don't remember
the actual name, but its creator created a series
of YouTube videos about how to start with NeoVim.
And I think that's what I used as my... primary
source of Neovim introduction. It built Neovim
from source, but in a way that resembled LunarVim,
but did not actually use LunarVim. I think that
was the idea. Oh, okay. So, short story, distros
are a great start, but I honestly recommend building
your own config. If you do not enjoy the process
of building your own config maybe neo vim is
not the right tool for maybe uh you can keep
using uh distro that's okay no shame in there
honestly i i do not joke here use it uh but most
the fun usually is uh configuring okay yeah yeah
i'm still on lazy vim and i'm like i should build
my own config, you know, but then it's like,
it's going to take me some time. And I'm like,
I'm postponing that, you know, and I will record
videos when I finally decide to, but yeah, LazyVim
is not easy either. Cause you know, it's, it's
quite complex and it has a lot of different stuff,
but that is the way that I got to know a lot
of different plugins that I love, like many of
the files, you know, it's because. LazyVim, right?
Or the mini that's around, I think it was, right?
Yes. Because of LazyVim. There's a lot that are
included in LazyVim, so it helps you get to know
new stuff, I guess, but yeah. Yes, but I think
that kickstart .nvim is a better approach at
educating educating your users how to actually
use and build so it it teaches you to fish instead
of giving you the fish makes sense okay that
makes sense okay that's why uh minimax which
is uh config examples that are based on minute
and vim take the similar approach It is not a
distro. It is basically a NeoVim with Maximum
Mini. That's the tagline. What you do is copy
these three commands. First one will download,
well, in this case, git clone the project itself.
The second one will set up your config. With
this command, it will set up in a special...
separate config, not your full -time config,
which is explained in the documentation. And
the third one will start it right away. So you
copy -paste, you hit enter, and you wait. It
already started it the first time, and it currently
installs all necessary plugins that are used
in this config example. This config is currently
set up for NeoVim 0 .11. That's it. It's already
finished. You can document it in the example,
in the code that you copy -pasted. You press
space, which adds a leader key, E for explore,
I for init law, and you start reading. Okay.
It describes what it is. its structure, how it
is organized, and so on. Hold on. I have a question
for you. Is this designed for people that are
just starting, or is this for an intermediate
user? Here are the prerequisites. Here's what
you need to understand. And I do understand that
it is not quite for... very, very new users.
It is probably not for that. You probably need
to have understanding about some stuff, at least
some stuff. So if you finished Vim Tutor and
read links that are present here, they are here
for a reason, then you could probably start using
it. So not for... the person who woke up and
decided, I want to use NeoVim, probably not for
them, for those people. But if you have already
an idea of Vim motions and you can navigate your
way around NeoVim... Well, not necessarily...
Well, navigate, yes. H, J, K, L, you know that
those are arrows. You know how to start NeoVim
from your command line. And you know the basics
of Lua language. That's what is variables, what
are files, and so on. That basically should be
enough, I think. Okay. And someone like me that
uses LazyVim as a daily driver, would it make
sense to try Minimax? Of course. Of course. Would
it help me to build my own config? Is that what
it... What you are looking at, this init .lua,
this is already your config. There is nothing
else to it. It is not an extra layer of abstractions
around your config, which is basically what a
distribution is, is an extra abstraction on top
of... plugins and new in itself but this is no
this this this already uh or am i pointing to
right direction this yep oh no the other side
the other side this this is already uh a your
company okay uh you can you can modify it you
can do whatever you want with it It is in a separate
directory. As you can see, it is not .config
slash nvim. It is .config slash nvim -minimax.
It is completely separate from what you will
use as your daily driver or as your current driver.
You can basically copy -paste those three lines
right now, and it will create this for you. If
you use LazyVim or any other, or if you have
a config on your computer, this will create a
separate config, which you can play with. So
yeah, it is a config mostly based on mini .envim.
And its configuration is split into four files.
One for options. which describes some basic stuff
about how to read this text and then sets every
necessary option in the way which I used it for
several years. This is mostly a copy -paste from
my config and maybe a little bit toned down for
people that don't like some stuff like folds,
etc. It contains explanation. Of every line,
what's every option. Yes, what every option does,
what every value is trying to achieve, and so
on. It also sets up diagnostic for you. And what
about LSP? We'll get to that a bit later. Okay.
The second file is for mappings, which basically
creates all leader mappings. like this which
are in the bottom right it is mini .clue which
is similar to you probably have which key yes
yep which key yes this is a similar tool for
showing clues mini .clue okay show clues about
what are you typing right now so this file creates
all the leader mappings Like for fun. Let me
ask you something, just obviously before you
continue. Why did you take the decision of saying,
okay, I'm not going to create many that clues.
I'm going to use, what did we say right now?
Witchkey. Witchkey, yeah. Why did you say like,
okay, no, you know what? I don't want witchkey.
I don't want anything to do with it. I don't
like folky. So I'm going to create many that
clues. Don't put those words into my mouth. I
did not say that I don't like Falky. There will
be a Reddit thread tomorrow that you, Chesnovsky,
don't like Falky. Don't do that to me, please.
Yeah, for sure. So next time we will have a Chesnovsky
and Falky in a call. Hopefully. If you can manage
to find Falky when he's not on vacation, which
is very rare. Oh, so you're hanging. He's mostly
on vacation. Okay, yeah. To answer your question
a bit more seriously, I already answered it.
I want to own my config. I find it fun to create
stuff for Neovim, and I find it... fun to own
what I use. And I have time and knowledge to
do that. So specifically about which key, what
was it? I think it was that I didn't really like
some design decisions about complexity of how
it is supposed to be used. I don't quite remember.
There is a comparison here. They are basically
similar, but main UI of which key at the time
was like bottom bar, which I didn't like. Also,
semi -funny story here that, well, not okay.
I tried with every new module, I tried to create
something new. because just copy -pasting functionality
and design of other plugins is not fun. Provide
something new for the community, be it different
configuration defaults or usually lately a different
functionality. With this one, I came up with
the idea of showing this clue window to the side.
They are not below. but on the right side where
you usually don't have text. And who created
this idea? Because I think Helix has this as
well. Did they copy you or did you copy them?
That is a funny story. I swear. I genuinely swear.
I did not know that Helix had this UI. Genuinely.
I thought about this idea, the floating window
in the bottom right corner. That's great. That's
a great idea. Let's do this. And I did. And I
think maybe several months afterwards or when
I released on Reddit post that described that,
oh, that's how Helix does it. So I wait. I opened
Helix. Yes, yes. It is how it does it. Well,
okay. Maybe, maybe. I saw it previously. Forgot.
And then one morning I thought, whoa, that's
a great novel idea. Maybe. Could be. I cannot
confirm nor deny that. But honestly... I thought
that this was a novel idea. Witchkey has that
layout now, and it's the default now, on the
right. Yes, but it came after Miniclue did this,
and of course Helix. Okay, okay. So it was a
Witchkey version 3 rewrite about a year ago,
I think. Year, year and a half. So, let's go
back to Minimix. Yep, let's go back there. so
the second file is for creating key maps which
are mostly leader keys oh one more thing about
miniclue is that the different idea behind it
is it is it is implemented significantly different
i remembered which key does this weird thing
at least in version tool version one when it
was around it creates some special mapping to
some weird character to act as a trigger i think
it was so unnerving for me to see when i explored
all the mappings it is very technical very technical
very niche reason to do this but but i really
did not like it I can later maybe search in the
issues or whatever, I don't quite remember. But
I did not like it. So I decided to create my
own implementation of how these clues are shown.
What you see right now is you press space and
it is a own... key query process. So it is not
how NeoVim interprets key presses. Without any
clue, if you press space and wait for a second...
Okay, that's what I configured and that was going
to be my question because I did configure one
second delay for... which key to show up, because
I didn't like that I pressed space, and it showed
up immediately. So you can configure that. Well,
you can, yes, but it's not about that. Let me
just do it like that. I see you use ghosty. Is
that fear on missing out as well, like any of
them? No, it's not. I'll get to that later. Let
me just... Stop interrupting me, you say. No,
no, no, not like that. So I have created one
normal mode mapping, space L, okay? So if I press
them in a quick succession, space L, it shows
one, as it should. Space L. But if I press space,
and wait for one second, and now press L, nothing
happened. Space, you see it in the bottom right
corner, the 20 sign, it's how space is interpreted.
L, nothing happens. Space, L, happen. That's
how NeoVim and Vim interprets key presses. There
is an option timeout then, which is by default
1 ,000 milliseconds, which is one second. It
is time in milliseconds to wait for a mapped
sequence to conclude. So if there is a delay
more than timeout length between key presses,
Veeam thinks that user stopped inputting the
mapping and executes it as it is. But with the
leader key in particular, I like to press leader
and then maybe think a bit. like leader f and
then oh which speaker i want to choose maybe
it's that or maybe it's not and if i think more
than one second it disappears and i have to press
space africa but with mini clue it implements
in its own key query process when after you press
space mini clue takes over this interpretation
of how the user presses keys. So you can space,
F, backspace, B, and look at different mappings.
This is a different approach at how MiniClue
is different to WitchKey, because WitchKey relied,
I think, a bit more about the built -in key query
process at that time. Okay. Maybe a little bit
more. Maybe when if Polky is on your interview,
you can ask him that. I don't know. Okay. If
he remembers that. I tried to get him already.
I sent him a message on Twitter and I was just
ignored. So I don't think that's going to happen.
But I'll keep trying. He's on vacation. He is
on vacation. Probably, yeah. So that's Mini Clue.
It shows all leader mappings that are created
in this file. The third row of four main configuration
files is basically for mini configuration, which
is the most important here because it covers
most of the functionality. Basically, well, I
don't know how... How deep I should go here to
describe? It is basically a collection, mostly
all mini .nv modules set up and described what
they do and how to use them in a very, very,
very concise manner. But this is a different
file. This is the mini .lua file, right? Yes,
it is a part of your configuration. Oh, but the
plugins have their entire code in here? Or just
a configuration, right? This is just to configure
mini plugins, correct? Yes, which are installed
using mini .debs. No, the mini .nvim are installed
like this. it is bootstrapped via git clone which
is a uh an only uh viable method of doing this
on neo vim uh prior to 0 .12 which will have
and already has a built -in plugin manager within
pack okay now your config right this min max
mini max config already yes min max or mini max
well it's mini to the max mini max okay yeah
it already has all of the mini plugins installed
right yes it is uh uh in local share and and
the mini max here that's where uh mini .nvm is
installed Here are all the modules. Module here
is basically a file that acts as a separate plugin.
But it is a single file complete with its documentation.
Here you can see that. This is actual file on
your disk, which you can require. Require mini
.ai. This is the result of sourcing this file,
mini .ai .law. It contains all the documentation.
You can compare it with this one. See the resemblance?
It's the same text, basically. But this is a
help file, which you can navigate as a help file.
That's an internal... implementation detail in
detail i've seen but it is here oh what if there's
someone that is like okay i prefer to use that
speaker instead of mini .pic what would that
person do in that case is minimax not an option
for them of course and it is an option totally
an option if you they want to use a different
picker different what what else notifications
like in bim notify or what they want to use other
okay maybe they want to use git signs instead
of a minid all they had to do is to possibly
if they want to be as clean and to have a config
as clean as possible they have to disable minipig
setting up a minipig go go to the to the force
file, which is for external plugins. It has installed
Nvim TreeSitter by default and set up TreeSitter.
LSP config. I'll show how to enable and set up
LSP. You asked that before, I think. And other
plugins as well. So what they'd have to do here,
I think, is to use this later function to lazy
-load it, use snacks and vim, and I think how
snacks picker is set up. Do you remember? Is
it like, I think it is picker enabled true. I
think it's like this. Then, I think it's like
this. Then restart. It auto -installs snacks
for them. That's installed. And I think how the
Snacks speaker is Lua, Snacks, speaker, files.
Here are the files. But it does it by default
in this home directory. You can navigate to Minimax
and start it from here. Lua, Max, speaker. Here
are all the files from your config, for example.
So it is possible. Of course, it is a config.
It is a collection of files that live in a dedicated...
I should adjust many hues, probably. Or snacks,
because it is invisible. Interesting. So it is
just a collection of files that live in a dedicated...
directory and load it when new vim starts that's
all what what's new in config is okay and i see
that all of the external plugins you have them
in a single file do you prefer yes yes that or
have a directory and have all the plugins inside
that directory the external ones like each file
or plugin well this is the structure that i prefer
One file for options, one file for keymaps or
mappings, one file specifically for mini .envim,
and one file specifically for external plugins.
I don't think anything more is needed. If people
prefer to structure it in a separate file per
plugin, they, of course, can do that. They can
create a new file, what do you want, which plugin
should be installed. You can try. No, I don't
even know what plugins they have installed. Qmk
.lua for the keyboard. Qmk .lua. Okay, Qmk. What
is... It's code thread. The repo is code thread.
This? Yep. Slash Qmk .envim. Probably like this,
yeah? Well, let's try. It is installed. How can
I use it? I don't know. Probably... Of course
it isn't. Does Snack have a picker for help?
Yes. It is installed already. You can use it.
Okay, that's good. That's good. Awesome. Let
me please get back to MIDI pick because... It's
difficult to navigate. Yes. At least it is not,
how do I say it, not comfortable for me at the
moment. Yep. All mappings use minipig. They all
use pig command, not snacks. What about plugin
manager? What do you use? Mini .deps. Yes. Okay.
But it will soon probably be not deprecated,
but superseded by Winpack. Okay, that was going
to be my question. So you're not going to...
Your main one will be to use the option that
NeoWin provides, right? I want to be... How would
I say it? Humble, please. Probably. i i i i sincerely
cannot uh even be humble here because uh that's
the truth uh okay impact is based on minute of
depths oh uh it is uh i my pr into neo vim to
create a built -in plugin manager okay and it
is heavily inspired by mini taps this is a 0
.12 right now. Yes, it will use instead of...
You can see it has... This is how it installs
and loads plugins. Just a single Winpack app
call which contains a full link to a plugin and
afterwards it can use required to configure and
use it. cut to how minidevs does things it has
single add function that installs and loads the
plugin well with hooks but vimpak doesn't have
it doesn't have them and afterwards it can be
configured it can use installed plugin directly
so yes uh this uh minimax uses mini .debs right
now and it will use it mini .debs for neo vim
version less than 0 .12 because minimax is not
a single config we can show it minimax is a collection
of configs which at the moment contains only
a single config but it is designed as a collection
It will automatically decide which config is
the best for your current NuVim installation.
And copy -paste, basically, copy -paste necessary
files. Right now it copy -pastes only files from
a single directory in vim -0 .11. But I should
have done this sooner, probably before this interview.
oh well there will be more configs like for example
in vim dash 0 .12 will be most most likely resemble
the config for 0 .11 but it will use vimpack
for sure okay and it will have certain options
enabled that are present only on neo vim 0 .12
okay The current plan is to have Minimax evolve
along with the NeoVim versions and have each
separate NeoVim version its own config for stability.
So if people for some reason need to use earlier
versions of NeoVim, they will be able to do that.
well starting from probably a 0 .9 version oh
so should i wait till neovim 0 .12 to try minimax
then so that i don't have to so if i go with
0 .11 right now when neovim 0 .12 comes out i
would probably have to upgrade minimax right
you uh you do not upgrade minimax you upgrade
your own config that's that's uh after you you
will set up minimax you will have your config,
and it will be tailored for NeoVim 0 .11. Okay.
You can already use, I think, NeoVim 0 .12. It
is more or less stable with occasional issues.
If some problematic PR is merged, there might
be some issues, but it is fairly rare, I would
say. So I, for example, already mostly daily
driving 0 .12 with the difference that I need
to have all versions installed that mini .nvim
is set to support. At the moment it is 0 .9,
0 .10, 0 .11 and lately 0 .12. So Minit .envim
has a very strict and wide policy for supported
newly versions, I would say. It's fairly rare.
It is one of the prides for me to be able to
say that Minit .envim does that. Okay, so if
you're on Mini that and Vim and if you installed
it when it was in 0 .11 and you want to upgrade
to Vim pack, I guess you will have documentation
in your site? Yes, of course. Mini Macs will
have somewhere probably on this page. There will
be not only links to the config themselves. You
can watch, you can read story. You can read the
whole config on the site. You can just read it.
You can consult it if you want to decide if it
is for you or not. You don't have to even install
it. You can read it here. So the idea is that
alongside actual configs, there will be a difference.
between, for example, NenVim 0 .11 and NenVim
0 .12. So it will show what have changed in regards
of Minimax config. For 0 .11 to 0 .12, it will
be a bit too much because of the transition to
Vimpack. I've already done that recently. It
will not be a huge issue, but it will be somewhat
of a big change. If you want to try Minimax,
I would encourage you to try it right now because
it is already too late. You should have done
this yesterday, I think. But if you want to wait
0 .12, it is one of my next items on my to -do
list. is to actually do nvim 0 .12 first i think
i will finalize the vimpak before the 0 .12 release
because it is still a little no it is it works
but there are some things that i wanted to have
before 0 .12 release like do you know what check
health is yep yep or the impact currently does
not have it But I think it should. The reason
why it doesn't have it is because it shouldn't
need it. Because it's perfect, right? Yes, yes,
yes. Okay. It should just work, ideally. Ideally,
if you follow the documentation, if you just
add vimpac .add to your init .tool file, it will
just work. Okay. This is a fresh config. Something
that we will see with NeoVim 0 .12. If you are
on a brand new machine, you should create init
.lua file. You should add one line of Winpack
add. Restart. It asks you to install the plugin.
You should wait some time depending on your internet
connection. It finished installation. And it
can already be used. This is the color scheme
from MediaNP. It is already present on your disk.
Here you can do something like... And it should
already be surround -enabled. You can change
quotes, you can delete quotes, etc. So basically
one line is all you need to install a plugin.
That's all. And afterwards you can use it. This
is not much different from what currently is
being done for 0 .11 and Minimax. But there will
be some differences between 0 .11 and 0 .12.
Oh, I think. okay okay now do you use any other
plugins besides mini plugins or just your plugins
uh this is my uh my file for the for my external
plugins okay is mostly the same that is in shown
in minimax but i have a vim script drama a vim
script plugin for uh managing built -in terminal
so like that yeah that opens a split window with
the built -in terminal i use it all the time
and besides minimax what is listed in minimax
i have some plugins for running tests which i
haven't used in a really really long time because
all i do now is is use mini .test for testing
mini and Vim. There are some file type for CSV
and Markdown. Markdown preview. It's Markdown
preview plugin, yes. And that's it. That's all
I use. Everything else is mini. Okay, awesome.