Video wird geladen...
Video konnte nicht geladen werden
Nvim vs Zed with 30k cursors
65,447 Aufrufe • vor 1 Monat •via X (Twitter)
54 Kommentare

Ahh yes I need to use 30k cursors

Here is Kakoune with 300k selections.

nice! Nvim still has a lot of baggage to remove (and low-hanging fruit) to improve editing speed; my multicursor work hasn't touched any of that, only focused on MC itself being fast.

it's time to rewrite zed in rust

Is this going to be available in neovim 0.13?

yup

It's almost instant for me in helix, 80k of short strings

i'm sure Zed can fix whatever is happening here. and Nvim will be able to fix perf issues as we go along too. that's why architecture matters, it allows you to iterate.

Are cursors here implemented like Emacs markers? An unsorted singly linked list? There was a patch to change to change them to a tree with much better asymptotic bounds but it didn't land. (In Emacs, point is literally a marker.)

Nvim cursors use "marktree", an internal data structure that has nice things like bisect. > In Emacs, point is literally a marker. sadly, Nvim "primary" cursor is still separate. changing that would be a boil-ocean refactor :<

50% of people hyped to the moon 49% of people don't get it 1% of people kakoune Personally I see this as monumental. Gaining some of the capabilities of kakoune/helix, with Neovim's built up (and incredibly hard to replace) plugin ecosystem is going to be incredible

Don't test this in EMACS your computer is gonna blow up

Proud to be neovim user

Very cool. Why is Zed on the CPU and not on the GPU though?

@ZH1YGD idk. i have a 2025 macbook air, maybe it doesn't have a H200?

Tbh, I don't know how things work on mac, but on a regular laptop with integrated and dedicated GPU, I would assume that Zed was running on the integrated only. That's something sometimes desirable to reduce noise and battery consumption. I think it is worth it to ask someone knowlegdable with macs.

pov: i'm trying to contribute a feature somewhere the maintainers: but what if the user has 30k cursors? this would impact performance

This is epic! Great job 👏 A lean performant editor is the kind of editor that we will someday carry on a watch

is this a block select or multi-cursor feature that is coming to Neovim?

multicursor

I tried to use zed but it gave me impression that it was vibe-coded. So many annoying little things dev would catch if they actually tested it. Many flows don't have proper error handling, sometimes you don't get any indication that an error happened. And vim mode is lackluster

awesome.

Yes bro neovim for the WIN

Cc @rtfeldman :)

Funny but if im making that many edits im using a macro or a regex.

macros and interactive :substitute are excellent tools. multicursors are "interactive macros" with preselected placement. placing cursors removes the need for crafting a macro that must deal with text shifts caused by the edits. but yeah 30k is extreme.

I thought zed would be faster

it's extremely fast and low-latency for most editing tasks. but its multicursor handling probably can be optimized.

How is that neovim?

Not bad 👍

When will the branch become public for us to test? :)

this week. feedback/testing is very appreciated!

Now try Helix

i looked at Helix's implementation but can't be bothered to install it. y'all can compare to Nvim when this lands. though it's not totally equivalent, bc Nvim emits plugin-observable CmdAtom events for all user actions (Helix does not, even w/ the steele PR)

interesting

Which terminal emulator are you using?

ghostty. p.s. Nvim supports the kitty multicursor protocol, so cursors look better in kitty.

Ahhh good I use kitty. 🐱

Interesting, I'll have that in mind whenever I need to have a 30k cursor

buffering

what a crazy way to use *vim. `:.,+30000!sed 's/old/new/g'`

cursormaxxing

how did you get that many cursors in vscode? is there a shortcut?

cmd palette => "Add Cursors to Line Ends" this is a reminder that i know vscode better than most vscode users 😂

haha. i didn’t realise u r neovim maintainer. thanks for responding. wow thats a whole custom command in vscode. i know vim better than vscode. never had to do this on vim, but im guessing its ctrl shift V for visual block and then G to go to the last line. and then I to edit. its super composable. on vscode i hold option and click where ever i want the other cussors to be. but one advantage with this is there doesnt need to have any obvious pattern on where the multi cursors need to be. if i have to do this on vim, maybe ill use a record or . command for repeating edits. is there a better way? is it possible to have multi cursors in random places on nvim?

in Nvim you can place cursors with "Q" or ctrl-click. visual-block is nice but there are situations where multicursors are better, i have a demo planned.

thank you. i didn’t know this. i just use visual blocks as multi cursors on nvim till now 😂😂

well, the feature hasn't landed yet. will be in Nvim 0.13

less is sometimes just more what should I say

say less

Only 100% ? Those are rookie numbers. you gotta pump those numbers up !

Imagine this is what decides it…

how to fix neo-tree reliability n consistency?

add more cursors
