Advertisement · 728 × 90

Posts by Evgeni Chasnovski

vim.pack: add `packspec` support · Issue #34778 · neovim/neovim Make vim.pack respect packspec. I.e. if plugin contains 'pkg.json' file, vim.pack should install dependencies, verify Neovim version, etc. Requires finalized packspec specification and discussions ...

Yep: github.com/neovim/neovi...

5 days ago 1 0 0 0

Yes, 'mini.deps' has `deps` field. But for `vim.pack` it feels a bit too much: 1) specifying deps should not be done on user's side; 2) they can be listef as "just another plugin"; 3) specifying it several times will work.

The idea is `vim.pack` support for plugin manifest that describes deps.

5 days ago 0 0 1 0

Nah, my first thought was "It has a cool gradient like effect in this colorscheme". So not entirely "mich nicer" in my opinion :)

1 week ago 1 0 1 0

@anirudh.fi, to follow up, Neovim 0.12 is out.

1 week ago 1 0 0 0

FYI: This is either AI generated with confidently wrong claims (like "have to navigate into each directory and `git pull` to update") or human written... with the same confidently wrong claims.

1 week ago 0 0 1 0

That's a big release with a lot of awesome features. Check it out and update!

1 week ago 19 2 1 0

It also checks highlighting!

Screenshots are the only way to truly test if the stuff appears on screen the way you expect: like virtual lines/text, statusline/statuscolumn, etc.

My suggestion would also be to still prefer "regular" tests for simple cases (like checking text in a buffer).

2 weeks ago 1 0 1 0

This was a surprisingly quick and rewarding side quest. About 72 hours from the idea of a Lua mockup to merging tested C code.

2 weeks ago 13 0 0 0
Preview
A Guide to vim.pack (Neovim built-in plugin manager) – Evgeni Chasnovski A somewhat concise yet comprehensive guide to vim.pack: how it works and how to use it

One of the core maintainers @echasnovski.com , and the author of `mini.nvim` just published this superb explainer of vim.pack with a handy migration guide. Incredible post for all Neovim users, worth reading before the upcoming release of @neovim.io 0.12.

echasnovski.com/blog/2026-03...

#neovim

2 weeks ago 10 2 0 0

That's too much praise. Thanks 🙏

Glad that you found it useful. I wanted to make using `vim.pack` as understandable as possible. Because it might require some knowledge of how Neovim handles some stuff (runtime files, plugin scripts, plugin packages, etc.).

2 weeks ago 0 0 1 0
Advertisement
Video

Tempted by a new Neovim setup? @echasnovski.com MiniMax offers a stable foundation you control from the start.
Not a distro, but a powerful base for your own config. Ideal for new users or those avoiding complex migrations. #Neovim #MiniMax #Vim #Editor #Programming

3 weeks ago 2 1 1 0

I am more of a Star Wars person, but thanks for the MiniMax shout out!

2 weeks ago 1 0 0 0
Preview
MiniMax – MINI Modular Independent Neovim Improvements

I'd encourage to wait a bit (hopefully till April) until 0.12 release and make a more stable config by removing things from it. Like move to built-in plugin manager.

Shameless self plug: nvim-mini.org/MiniMax/

3 weeks ago 6 1 1 0

... and it is to put `vim.loader.enable()` as a first line in 'init.lua'. Here are my quick benchmarks:

- 95.6, 94.5, 90.8 milliseconds for 'lazy.nvim' variant. Although config errors.
- 137.0, 138.0, 136.5 for pure `vim.pack` branch.
- 98.8, 108.4, 96.3 with `vim.loader.enable`. Which is not bad.

4 weeks ago 4 0 2 0

Thanks, that's really useful!

Quick comparison indeed shows that in both cases there is not a lot (if any) lazy loading. And it *seems* that the overall effect is due to dark magic 'lazy.nvim' does for faster `require`.

Luckily, there is one built into Neovim already...

4 weeks ago 1 0 1 0

Is it with the same amount of lazy loading in both configs or with just defaults?

Making some plugins not lazy load when they were before can have this effect. A more detailed comparison of these two startup time logs can help here.

Do you have your config public?

4 weeks ago 5 0 1 0
A Demo of vim.pack (Neovim built-in plugin manager)
A Demo of vim.pack (Neovim built-in plugin manager) YouTube video by Evgeni Chasnovski

It also comes together with a video demo for visual learners and people who want to see vim.pack in action.

youtu.be/J1r0vrqOMJo

4 weeks ago 5 0 0 0
Advertisement
Preview
A Guide to vim.pack (Neovim built-in plugin manager) – Evgeni Chasnovski A somewhat concise yet comprehensive guide to vim.pack: how it works and how to use it

For almost a year developing `vim.pack` (Neovim>=0.12 built-in plugin manager) has been one of my top open source priorities.

With #neovim 0.12 release around the corner, I decided to make a comprehensive guide about how `vim.pack` works and how to use it.

echasnovski.com/blog/2026-03...

4 weeks ago 38 8 5 0

Thanks to @bfredl.bsky.social casting his magic, some benchmarks had to be redone to show different (better) performance. So the post has been updated.

TL;DR for those who read the original: there is now no practical difference in performance of using one vs many `vim.pack.add()` calls.

1 month ago 7 1 1 0
Preview
feat(lsp): add vim.lsp.server to create in-process server by mfussenegger · Pull Request #24338 · neovim/neovim Early WIP/draft: There are occasionally requests for dedicated APIs for code actions or codelens, (also formatter, but there's formatexpr, formatprg and !cmd and afaik so far no explanation of ...

Yeah, code actions is a great way to implement custom operations at cursor.

Btw, if you feel like it, this PR may benefit from your experience: github.com/neovim/neovi...

Maybe even take over it if the author doesn't mind.

1 month ago 2 0 1 0
Bluesky Comments Extension – BlueSky Comments

With Quarto - relatively straightforward to add with quarto-ext.github.io/bluesky-comm....

Although there is friction when using, as it requires a link to a Bluesky post in a blog post. So it is: post blog -> post Bluesky -> edit blog post with a link for comments.
Didn't find a smoother way :(

1 month ago 1 0 1 0
Preview
MiniMax updates: vim.pack on Neovim>=0.12, config for Neovim=0.10 – MINI MiniMax got two new reference configs: nvim-0.12 for Neovim>=0.12 (uses vim.pack) and nvim-0.10 for Neovim=0.10

MiniMax now uses `vim.pack` on Neovim>=0.12 and usable on Neovim=0.10.

This is a more exciting news than it might look, because it is the first step towards MINI adapting `vim.pack` as the plugin manager. 'mini.deps' will be retired soon-ish after Neovim 0.12 release.

nvim-mini.org/blog/2026-02...

1 month ago 12 0 1 0

Yeah, backups is a must of course. It's just possible to do it manually in several clicks on Bluesky itself. But it is not the same for generating a rotation key.

1 month ago 0 0 0 0

I like PDS MOOver and this looks like a perfect opportunity to ask. Is there a plan to add "Generate rotation key" without actual migration? Or is it better to be handled locally with software (in which case a step-by-step guide would go a long way)?

1 month ago 2 0 1 0
Preview
MiniMax – MINI Modular Independent Neovim Improvements

MiniMax has six, but it is planed to be even fewer.
nvim-mini.org/MiniMax/

2 months ago 2 0 0 0

The way I do it is with `vim.schedule(function() ... end)`. When inside config file, it will be executed after first draw.

A more convenient solution is to use `later()` from 'mini.deps'. I also plan to add a more involved function to 'mini.misc', since 'mini.deps' will retire eventually.

2 months ago 1 0 0 0
Advertisement
Bluesky Comments Extension – BlueSky Comments

By the way, the blog from now on should have comments powered by Bluesky. Answers for Bluesky post above (this one included) should also be shown as comments below blog post.

It is powered by `bluesky-comments` Quarto extension: quarto-ext.github.io/bluesky-comm...

2 months ago 4 0 1 0
Preview
How many Neovim plugins is too many – Evgeni Chasnovski Exploration of how number of loaded plugins affect startup+runtime performance

For the longest time I was curious to measure the exact impact of how number of loaded #neovim plugins affects performance.

So I finally did it: echasnovski.com/blog/2026-01...

2 months ago 14 0 3 1

Yeah... Don't look inside 'mini.pick' :)

But bare in mind that this is a file that contains code+documentation *and* provides the whole autocompletion functionality (LSP suppprt, extra info in a window, signature in a window, and more) in a single file.

2 months ago 1 0 0 0

Then you might sleep well tonight. After several minutes of watching this :)

I'd quoted the answer there and then, but typing the whole thing was too slow compared to pointing to the timestamp. @linkarzu.bsky.social has very detailed timestamps, which helped here.

2 months ago 2 0 0 0