Evgeni Chasnovski's Avatar

Evgeni Chasnovski

@echasnovski.bsky.social

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

679 Followers  |  43 Following  |  117 Posts  |  Joined: 14.11.2024  |  1.8937

Latest posts by echasnovski.bsky.social on Bluesky

Preview
mini.diff config for jujutsu Β· echasnovski mini.nvim Β· Discussion #1783 Sharing in case someone finds it useful. Should work with multiple repos/workspaces. Doesn't have hunks since those don't make sense with jj. Uses --ignore-working-copy so it should pollute your op...

Take a look at this 'mini.diff' config: github.com/echasnovski/...

There are plans to make this setup more streamlined, but no time frame yet.

06.08.2025 16:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

But judging by the video, it is a direct Insert mode mapping for `jk` somewhere. The cursor slightly "lags" after pressing `j` when typing slowly. It means that Neovim waits for the next key to decide if the letter should be inserted or is it a part of a mapping.

01.08.2025 15:39 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It is a 'better-escape' type of plugin. This showcases its intended usage: quickly typing some two letters (usually `jk`) exits into Normal mode.
For some people it is easier than `<Esc>`, but for me it feels too intrusive.

01.08.2025 15:35 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Treesitter | Learn nvim Learn how to use Neovim and survive the experience

neovim's built-in "treesitter support" is a cool feature that has been around for a while now. i didn't found many resources that explain what is, so i wrote something

vonheikemen.github.io/learn-nvim/f...

#neovim

28.07.2025 14:54 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Then look at Neovim issues to see what makes *you* want to fix it.

But note that not only Lua fix/feature is a valuable contribution. Improving documentation (better wording or typo fix) or Lua types are very welcome.

There is also C part of thr codebase, but I know very little about it.

26.07.2025 06:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Try to first get comfortable with Lua and Neovim. I think the best "exercise" here is to write your own statusline. Not for other people to use it, but only for own config.

Writing the plugin that solves some practical issue is a good second step. It can be for a language or tool, for example.

26.07.2025 06:34 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I have been making appeals regularly, but there is no effect currently.

If anyone has a more direct line of communication with Reddit support/admins outside of regular appeals or Redditor help center, I'd highly appreciate if they take a look at the account status. Thanks πŸ™

21.07.2025 13:18 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

PSA: my Reddit account (same as Bluesky handle) has been suspended for 11 days now. All its past content (mostly #neovim posts + comments) is currently hidden by Reddit filters.

It was due to a false positive inauthentic activity detection. I reset the password, but account is still shadow banned.

21.07.2025 13:18 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Neovim vs Emacs | Roundtable w/ TJ DeVries, DistroTube, Greg Anders & Joshua Blais
(Video in 1st comment)

20.07.2025 12:09 β€” πŸ‘ 5    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

It is a more organized way of modifying 'runtimepath' *plus* executing necessary 'plugin/' scripts, yes. Like, it will also add plugin's 'after/' directory to 'rtp' if needed.

15.07.2025 11:16 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks for trusting 'mini.nvim'! There are still many modules for you to try :)

I've read the post earlier today and it (re-)made me aware about the 'inccommand=split'. I somehow didn't remember it. So thanks for spreading the knowledge!

12.07.2025 16:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Hm, that's an interesting one to cause issues. But yeah, I get it (after reading the full thread) why you experienced it. 'mini.statusline' does assume that it is the one responsible for setting 'statusline' option.

04.07.2025 20:34 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I don't think there will be a long term damage here because it is meant as an automation tool. If users want to manage fully manually, this should be still possible with 'pack/*' packages and git submodules. Like I also used to do before 'mini.deps' :)

04.07.2025 18:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Indeed, one of the optimistic end goals is to have a built-in plugin manager that can respect data about plugins that they themselves provide: install/update dependencies, run hooks on install/update/delete, etc.

Right now it requires manually adding dependencies and setting up hooks.

04.07.2025 18:00 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Would you mind sharing what was the issue? Was it a dedicated breaking change or something unintentional?

04.07.2025 17:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
treesitter distribution strategy (tree-sitter) Β· Issue #22313 Β· neovim/neovim Problem Current situation: Nvim ships a few parsers (C, Lua, vimdoc, vimscript) in its runtime. If user wants more parsers they must build the parser and put it on their 'runtimepath' , or use a pr...

AFAIK, there is a planned out of the box tree-sitter installation: github.com/neovim/neovi...

04.07.2025 16:51 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

There is some misunderstanding here. `:packadd` doesn't modify 'packpath'; it searches in its directories and adds first match to 'runtimepath' (`:h pack-add`). So it is already a built-in way to properly modify 'runtimepath'.

04.07.2025 15:49 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The reason is mostly to reuse existing "infrastructure" of packages and not re-invent how plugins are sourced.

'packpath' is not affected. It reuses the default suggested path that is already present there.

`vim.pack` doesn't require user to know 'start' vs 'opt' lore. Just `vim.pack.add()`.

04.07.2025 15:05 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Yeah, it would require each 'opt/' subdirectory as a separate Git repo. So it is a matter of how to package the plugin.

If there is an automatic dependency resolution in the future, all of them can be added as dependencies to some dummy plugin.

04.07.2025 14:36 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It was a long road to get here, but we made it πŸŽ‰
Thanks @neovim.io core team for allowing me to do this!

There are still a lot of things to do, but we'll approach them one small step at a time.

04.07.2025 14:12 β€” πŸ‘ 40    πŸ” 2    πŸ’¬ 3    πŸ“Œ 1

Yes, backward compatibility with at least two previous stable Neovim versions is a goal. Only recently stopped supporting 0.8.

There might be limited support of some features, but only if it is impossible/hard to do on older versions.

Glad that this effort has its audience :)

03.07.2025 15:45 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

After skimming some sections, it is very nicely written. I liked that you mentioned built-in packages instead of locking users to a single plugin manager.

And thanks for mentioning 'mini.nvim'πŸ™

03.07.2025 05:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

As far as I know, this is only a "money in exchange for a spot on the web site". They have no input into the decisions and development in general. So not *that* bad.

19.06.2025 20:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

While writing my prompt from scratch (as one does), decided to also try and have Neovim (#neovim) with 'mini.pick' be my CLI fuzzy finder. It was not as complicated as I feared at first. Definitely has its shortcomings, but works okay.

Here is how the result looks:

18.06.2025 16:57 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Switching from Zsh to Nushell brings back memories of switching from Vim to Neovim. Nu language feels nicer for config and customized tweaking compared to Bash, in the same way as Lua is to Vimscript.

18.06.2025 16:57 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I've been interested to try Nushell for some time now. Several weeks ago decided to give it a try.

To me it looks good enough to daily drive, but only if you are comfortable adjusting the setup after new releases (as both language and shell behavior is not quite stable yet).

18.06.2025 16:57 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

LazyVim uses `gsa`/`gsd`/etc instead of `sa`/`sd`/etc. I personally find it too verbose.
Instead I'd suggest using different key for jumping. My preferred choice is <CR>, but other good candidates are <Tab> and maybe even `sj`.

03.05.2025 13:32 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks for kind words!

To be fair, there most certainly are others. I *think* 'j-hui/fidget.nvim' should show this (at least there is something Rust-like in the demo). But I do like some design choices of 'mini.notify' better.

03.05.2025 13:12 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Yes, but for closing brackets and quotes:
github.com/echasnovski/...

03.05.2025 12:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

All of that Vimscript is in runtime files (like filetype plugins, syntax files, color schemes) and tests. The Neovim source is overwhelmingly C and Lua.

So don't let your dreams be dreams :)

03.05.2025 12:53 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@echasnovski is following 20 prominent accounts