Top
Best
New

Posted by pawelgrzybek 2 hours ago

Neovim 0.12.0(github.com)
130 points | 60 comments
butterlesstoast 2 minutes ago|
With all the supply chain attacks this last week, little hesitant to upgrade.
imjonse 4 minutes ago||
It probably goes against Vim tradition, culture and freedom to choose, but I wish they added even more built-in features (like Helix) that are currently implemented in competing and sometimes brittle plugins and have to be put together into also competing vim starter packs and distros of plugins and config files just to have a modern setup out of the box.
helterskelter 55 minutes ago||
Up next for 0.13: multiple cursors! I have no idea what I'd do with this feature but it sounds intriguing.

https://neovim.io/roadmap/

w4rh4wk5 23 minutes ago||
Multi cursor support in VSCode replaced 98% of my need for macros. Yes, macros are more powerful, but they are pretty easy to get wrong. With multiple cursors, it's far easier to spot where your inputs don't work out and adjust accordingly.

Multi cursor is the feature that increased my productivity the most across the board.

eviks 16 minutes ago|||
You'd do text editing with it with the coolest feedback loop - immediately seeing the changes and what those changes apply to beforehand, that's different from having to repeat some macro multiple times
Iridescent_ 41 minutes ago|||
Kakoune has replaced many features with multicursor, including the sed-like commands (where you just select an area, search for patterns inside it to create the multiple cursors, then perform regular edits (which also means you can perform much more complex than simple replaces). It is really useful for refactors, e.g. even if you don't have any LSP (e.g. for plain text) you can easily rename symbols, reorder/select in log files, etc
steve_adams_86 49 minutes ago|||
I'm not sure how people typically use neovim, but in Zed I find multiple cursors (especially combined with multiple file buffers) extremely ergonomic for refactoring quickly and easily where tools like find and replace or simple renaming doesn't suffice. It lets you scan through and add cursors where you need them, then perform your edits across locations and even files all at once. It's so nice that it played a significant role in me keeping Zed early on despite it missing a lot of extensions I used in VS Code.
gesis 44 minutes ago|||
I am so used to sed-style, regex powered find/replace, that this use admittedly never occured to me. As a result, multi-cursor seemed mostly useless outside of pair programming that I never do.

I will have to try it out once it lands in neovim just to see if I can wrap my muscle memory around it.

steve_adams_86 20 minutes ago|||
I've always told myself I should learn to do these sed/regex find and replace techniques, but my origins are not sophisticated and I use computers like that orangutan hammering nails in the video with David Attenborough https://youtu.be/IFACrIx5SZ0?si=NcWGBNq272KoYB2i&t=84

It's entirely possible that you don't need multiple cursors

runevault 35 minutes ago|||
For me the nice thing about multiple cursors is when it would take more time to write the regex than it does to just throw down say 8 cursors and update the spots.
bluecalm 34 minutes ago|||
You have very convenient macros. If there is something you want to do in places you are going to mark first then you can just execute it right there instead. If it's just one edit you just do it right there without macro and use the dot to repeat it in more places.

If those places can be created automatically then again it's just a macro you execute over many lines.

themadsens 21 minutes ago|||
Whats with all the fuss over multicursor. How is this different from just using '.'
wilkystyle 14 minutes ago||
dot repeat is the wrong comparison. A closer one would be macros, but even then a good multiple cursors implementation is often faster, more intuitive, and requires less cognitive overhead. One of the better examples of the usefulness of multiple cursors is from Emacs Rocks (link goes to 0:23):

https://m.youtube.com/watch?v=jNa3axo40qM&t=23s

meekins 46 minutes ago|||
Really excited about this! At least in Sublime Text I've found multiple cursors a really powerful tool for ad-hoc transformations on snippets of semi-structured text or instantly and visually applying the same edit on multiple similar lines.
tekawade 44 minutes ago|||
Lookup helix tutorial. It’s pretty useful.
scuff3d 47 minutes ago||
It's funny because I miss this one all the time. I got use it in Sublime and VScode before making the jump to Neovim. I know you can get similar functionality from macros and what not, but it's just not the same.
nickandbro 12 minutes ago||
If anybody wants to checkout my site to learn the basics of vim. Here it is:

https://vimgolf.ai

I proxy to neovim instances for each level. Still working out some kinks but soon to complete it

toisanji 45 minutes ago||
Is anyone using them vim with Claude or any of these coding tools? I want to, but I haven’t found a good workflow.
OliverWich 5 minutes ago|
Sidekick.nvim is nice, you get a "real" terminal window on the side with many different agents to choose from.

Either opencode, claude, gemini, copilot, basically most that are relevant :D

Its a pretty light connection-layer, so it helps with sending context.

mi_lk 1 hour ago||
> - d21b8c949ad7 pack: add built-in plugin manager `vim.pack

Can someone try to sell me this over lazy.nvim? I asked Claude to convert lazy config to pack and I was not happy with it because how verbose it turned out

pawelgrzybek 1 hour ago||
Have a look here. This is incredible guide to the `vim.pack`.

https://echasnovski.com/blog/2026-03-13-a-guide-to-vim-pack....

flexagoon 36 minutes ago|||
> how verbose it turned out

Verbose? The new plugin manager's interface is literature just vim.pack.add({url}), not sure what is verbose about that

lawn 25 minutes ago||
If you want to replicate the lazy features then it will get verbose. Even using a dedicated plugin for lazy loading it's not as tight as lazy.nvim.

You may argue that you don't need lazy loading, which is fine, but they're not 1-to-1 compatible.

PhilipRoman 34 minutes ago|||
I always thought Vim/Nvim already had a built-in package manager, git clone inside ~/.vim/pack/*/start, am I missing anything by not using a "real" package manager?
Jare 5 minutes ago||
I imagine you are left with manual dependencies, manual updates, and possibly without lazy loading or portable configuration. That stuff is not strictly necessary and may be easy to roll your own if you're very into it, but it's comfortable to have a standard.
c-hendricks 1 hour ago|||
I'm assuming there will be something like lazy.nvim built on top of vim.pack. Some of the conventions might go away (ie constantly calling `.setup`).
NegativeLatency 47 minutes ago|||
It being built in sounds nice, although I have some lines in my config that automatically install lazy if it’s missing.
tekawade 46 minutes ago||
Tried to switch but found lazy.nvim better
benrutter 1 hour ago||
Always interesting when a project stays 0 ver for so long- anyone close to the project know what would be considered significant enough for a "v1" release?
suby 1 hour ago||
There is a roadmap and github issue tracking what is needed for 1.0.

https://github.com/neovim/neovim/issues/20451

https://neovim.io/roadmap/

nicebill8 1 hour ago|||
Possibly never: https://0ver.org/
saint_yossarian 16 minutes ago|||
AFAIK it's mostly about stabilizing the RPC API and Lua stdlib:

https://github.com/neovim/neovim/issues/20451

kps 1 hour ago||
Maybe when `:!` works the way vi does and POSIX says it must.

Just kidding, that will never happen.

markrian 57 minutes ago|||
What are referring to, out of interest? Does this apply just to nvim, or vim as well?
PhilipRoman 38 minutes ago|||
In Vim, :! cleans up the tty context and hands it off to the child program, to do whatever it wants, you can open any TUI program and it will work as expected. In Neovim, :! just uses a plain pipe. Actually I believe GVim has the same problem. Since both Vim implementations now have a built in terminal handling stack anyway, I wonder if that could be used to unify the behavior.
djb-at-durable 35 minutes ago|||
Just nvim. Neovim runs :! commands non-interactively, capturing the output in a pipe. vim, on the other hand, suspends itself and runs the command in an external shell.

This isn't a problem, really, for non interactive commands, but causes issues with interactive ones. I personally prefer vim's approach, though not enough to abandon neovim.

flexagoon 33 minutes ago|||
vi compatibility is explicitly a non-goal for neovim

https://neovim.io/charter/

shmerl 17 minutes ago||
Congrats on diff mode improvements. Hopefully forge style highlighting mode for two way diffs will be available next.
c-hendricks 1 hour ago||
I unintentionally ran the main branch when testing some changes and a lot of my config broke (mostly around LSPs, CodeCompanion was much slower streaming its responses) so might wait a bit before upgrading.
semiinfinitely 53 minutes ago|
the zig build system is the only thing that actually matters in these notes. nobody maintains a parallel build system for fun—it's a clear signal they're finally pathfinding a way to migrate the core away from legacy c. zig's native interop is basically the only way to do this incrementally without the massive friction of a full rust rewrite. definitely makes nvim feel like a much more serious environment for systems-level performance work.
mihaelm 38 minutes ago||
It doesn't necessarily mean they're going to migrate from C, building a C project is just so much nicer with Zig than fiddling around with CMake. You got people using it as a build system even for Go projects, especially if they're relying on CGo.

However, if you were entertaining the idea of slowly switching to Zig, the build system would be the place to start. Moving away from CMake is worth it even if you don't push it further.

But yeah, the C-Zig interop story is so good it's a no brainer if you want to "modernize" your C codebase, and you can do so incrementally instead of stopping the world for a rewrite.

metaltyphoon 19 minutes ago|||
> the only way to do this incrementally without the massive friction of a full rust rewrite

Any rewrite is massive friction, I’m sure probably meant port? The only annoyance with Rust ports is if you have to support varargs. Hopefully that will come to an end soon.

tovej 20 minutes ago||
Couldn't disagree more. Why move away from solid, mature build systems to something relatively fringe like zig.

Sadly, this is the general trend with neovim in general: less focus on stability, more and more focus on shiny new things. If I didn't have an nvim config that I'm used to I would have switched to plain vim ages ago.

More comments...