Sign in

Evgeni Chasnovski

@echasnovski.com
822 followers 61 following 202 posts

Data science, Machine learning | R, Python, Lua | Neovim plugins, mini.nvim

PostsRepliesMedia
Evgeni Chasnovski @echasnovski.com · 16/09/2026
Thanks! PRs go through 'mini.nvim', not standalone repos. This particular docs change feels too specific, though. It looks like only supplying `false` for `(` is enough (the default `)` will still apply), and this is a documented way of disabling a character.
110
Evgeni Chasnovski @echasnovski.com · 04/09/2026
Yeah, only at cursor, which is usually enough. I wasn't sure if that is a deal breaker here. Nice job then!
000
Evgeni Chasnovski @echasnovski.com · 04/09/2026
It is not apparent to me from the post, but did you try the built-in `gx` (neovim.io/doc/user/var...) first? It opens a link under cursor using appropriate handler (browser, file explorer, etc).
neovim.io
Various
hyperextensible Vim-based text editor
110
Evgeni Chasnovski @echasnovski.com · 27/08/2026
'mini.nvim' now has a module for improved statuscolumn (area with line numbers, signs, fold indicators): 'mini.statuscolumn'. Release blog post: nvim-mini.org/blog/2026-08... #neovim
nvim-mini.org
Announcing ‘mini.statuscolumn’ – MINI
Fast statuscolumn with improved defaults and dimming inactive windows
0100
Evgeni Chasnovski @echasnovski.com · 20/08/2026
This looks like an outdated news. It was archived for a couple of months (while still being available), but now it is not. The latest commit is five days old.
020
Evgeni Chasnovski @echasnovski.com · 09/08/2026
For "Get Zed/Helix but Neovim" type of quest I'd also recommend MiniMax: nvim-mini.org/MiniMax/
nvim-mini.org
MiniMax – MINI
Modular Independent Neovim Improvements
020
Evgeni Chasnovski @echasnovski.com · 20/07/2026
> I take it you're liking the built-in manager then? Yeah, I think it is a good fit for core: minimal for easier maintenance while simple and capable enough for most users.
010
Evgeni Chasnovski @echasnovski.com · 20/07/2026
It is likely that there will be no more "special" lazy loading capabilities in `vim.pack`. Mostly because there already are ways to perform lazy loading: echasnovski.com/blog/2026-03... It is fairly possible to achieve low startup time with `vim.pack` as it is now.
echasnovski.com
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
110
Evgeni Chasnovski @echasnovski.com · 14/07/2026
Nice! You can go even lower in plugin count by using 'mini.nvim' and its modules instead of at least 8 plugins you are currently using. Just saying :)
110
Evgeni Chasnovski @echasnovski.com · 21/06/2026
'mini.nvim' got 0.18.0 release: new featureful module to ask user for input, 'mini.deps' development freeze, 'mini.files' LSP integration, and a lot of small updates to existing modules. What a good way to celebrate June solstice! Release blog post: nvim-mini.org/blog/2026-06...
nvim-mini.org
Release 0.18.0 – MINI
Featureful user input, ‘mini.deps’ freeze, ‘mini.files’ LSP integration, and a heap of module tweaks
0292
Evgeni Chasnovski @echasnovski.com · 05/06/2026
As I understand this, it is up to a `vim.ui.input` implementation to provide a way to show candidates based on supplied completion method. The built-in one and 'mini.input' show candidates after explicit `<Tab>`. But yeah, those are for string candidates only, not documentation.
110
Evgeni Chasnovski @echasnovski.com · 05/06/2026
`vim.ui.input` interface supports custom completion with `'customlist,v:lua.my_compl'` completion field. Here `_G.my_compl` is a global function that takes data about base and has to synchronously return candidates. I'd suggest plugins to try and use this more universal approach.
100
Evgeni Chasnovski @echasnovski.com · 04/06/2026
Thanks! To be fair, if a plugin can work within `vim.ui.input` API, it probably should. But when getting the input synchronously is a must, 'mini.input' is a good solution. Maybe `vim.ui.input` interface will cover synchronous case in the future (there are ways). We'll see.
110
Evgeni Chasnovski @echasnovski.com · 04/06/2026
I am happy to announce the release of 'mini.input' - a module of 'mini.nvim' that makes asking for user input both more functional and visually pleasant. 'mini.nvim' now crossed two milestones: 45+ modules and 5000+ tests. Release blog post: nvim-mini.org/blog/2026-06...
nvim-mini.org
Announcing ‘mini.input’ – MINI
Get user input with fully customizable key and view handling
1150
Reposted by Evgeni Chasnovski
Neovim @neovim.io · 01/06/2026
#neovim repository has reached 100K GitHub stars. Thank you all for the support 🙏
A screenshot of GitHub user interface that shows that Neovim repository has 100003 stars.
71259
Evgeni Chasnovski @echasnovski.com · 12/05/2026
My pleasure! I am happy and relieved that a lot of people seem to enjoy using it 😌
010
Evgeni Chasnovski @echasnovski.com · 10/05/2026
Nice! For Neovim>=0.12 instead of 'mini.deps' I would suggest using `vim.pack`, though.
120
Evgeni Chasnovski @echasnovski.com · 04/05/2026
Neovim developers themselves heavily use `clangd`. So I hardly doubt that updating to 0.12 per se is the culprit here. For example, this might be a plugin that acts differently on 0.12 compared to 0.11.
120
Evgeni Chasnovski @echasnovski.com · 20/04/2026
Glad it helped! Welcome to using `vim.pack` :)
000
Evgeni Chasnovski @echasnovski.com · 05/04/2026
Yep: github.com/neovim/neovi...
github.com
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 ...
010
Evgeni Chasnovski @echasnovski.com · 05/04/2026
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.
100
Evgeni Chasnovski @echasnovski.com · 02/04/2026
Nah, my first thought was "It has a cool gradient like effect in this colorscheme". So not entirely "mich nicer" in my opinion :)
110
Evgeni Chasnovski @echasnovski.com · 31/03/2026
@anirudh.fi, to follow up, Neovim 0.12 is out.
010
Evgeni Chasnovski @echasnovski.com · 30/03/2026
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.
100
Evgeni Chasnovski @echasnovski.com · 29/03/2026
That's a big release with a lot of awesome features. Check it out and update!
1203
Evgeni Chasnovski @echasnovski.com · 24/03/2026
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).
110
Evgeni Chasnovski @echasnovski.com · 23/03/2026
This was a surprisingly quick and rewarding side quest. About 72 hours from the idea of a Lua mockup to merging tested C code.
0130
Reposted by Evgeni Chasnovski
Paweł Grzybek @pawelgrzybek.com · 21/03/2026
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
echasnovski.com
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
0102
Evgeni Chasnovski @echasnovski.com · 21/03/2026
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.).
100
Reposted by Evgeni Chasnovski
linkarzu.bsky.social @linkarzu.bsky.social · 21/03/2026
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
131
Evgeni Chasnovski @echasnovski.com · 21/03/2026
I am more of a Star Wars person, but thanks for the MiniMax shout out!
010
Evgeni Chasnovski @echasnovski.com · 18/03/2026
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/
nvim-mini.org
MiniMax – MINI
Modular Independent Neovim Improvements
161
Evgeni Chasnovski @echasnovski.com · 13/03/2026
... 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.
130
Evgeni Chasnovski @echasnovski.com · 13/03/2026
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...
100
Evgeni Chasnovski @echasnovski.com · 13/03/2026
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?
140
Evgeni Chasnovski @echasnovski.com · 13/03/2026
It also comes together with a video demo for visual learners and people who want to see vim.pack in action. youtu.be/J1r0vrqOMJo
youtu.be
A Demo of vim.pack (Neovim built-in plugin manager)
YouTube video by Evgeni Chasnovski
050
Evgeni Chasnovski @echasnovski.com · 13/03/2026
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...
echasnovski.com
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
5408
Evgeni Chasnovski @echasnovski.com · 27/02/2026
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.
171
Evgeni Chasnovski @echasnovski.com · 18/02/2026
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.
github.com
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&#39;s formatexpr, formatprg and !cmd and afaik so far no explanation of ...
120
Evgeni Chasnovski @echasnovski.com · 17/02/2026
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 :(
quarto-ext.github.io
Bluesky Comments Extension – BlueSky Comments
110
Evgeni Chasnovski @echasnovski.com · 15/02/2026
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...
nvim-mini.org
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
1120
Evgeni Chasnovski @echasnovski.com · 15/02/2026
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.
000
Evgeni Chasnovski @echasnovski.com · 14/02/2026
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)?
120
Evgeni Chasnovski @echasnovski.com · 03/02/2026
MiniMax has six, but it is planed to be even fewer. nvim-mini.org/MiniMax/
nvim-mini.org
MiniMax – MINI
Modular Independent Neovim Improvements
020
Evgeni Chasnovski @echasnovski.com · 31/01/2026
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.
010
Evgeni Chasnovski @echasnovski.com · 27/01/2026
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...
quarto-ext.github.io
Bluesky Comments Extension – BlueSky Comments
140
Evgeni Chasnovski @echasnovski.com · 27/01/2026
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...
echasnovski.com
How many Neovim plugins is too many – Evgeni Chasnovski
Exploration of how number of loaded plugins affect startup+runtime performance
4160
Evgeni Chasnovski @echasnovski.com · 24/01/2026
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.
000
Evgeni Chasnovski @echasnovski.com · 22/01/2026
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.
020
Evgeni Chasnovski @echasnovski.com · 22/01/2026
Thanks for taking your time to arrange the interview, @linkarzu.bsky.social! We talked about Neovim, mini.nvim, MiniMax, Linux, terminals, and some other topics. Check it out. It is long (3+ hours), but it was fun to do. Hopefully also fun to watch/listen.
390