Loading video...

Video Failed to Load

Go Home

Nvim vs Zed with 30k cursors

65,447 views • 1 month ago •via X (Twitter)

54 Comments

ADormantSakthi's profile picture
ADormantSakthi1 month ago

Ahh yes I need to use 30k cursors

Loric Brevet's profile picture
Loric Brevet1 month ago

Here is Kakoune with 300k selections.

justinmk's profile picture
justinmk1 month ago

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.

Mikael Brockman's profile picture
Mikael Brockman1 month ago

it's time to rewrite zed in rust

Vim Glamour's profile picture
Vim Glamour1 month ago

Is this going to be available in neovim 0.13?

justinmk's profile picture
justinmk1 month ago

yup

Artem Golubin's profile picture
Artem Golubin1 month ago

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

justinmk's profile picture
justinmk1 month ago

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.

Daniel Colascione's profile picture
Daniel Colascione1 month ago

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.)

justinmk's profile picture
justinmk1 month ago

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 :<

6thScythe's profile picture
6thScythe1 month ago

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

Mark Tyrkba's profile picture
Mark Tyrkba1 month ago

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

Vitalii Diachkov 🇺🇦's profile picture
Vitalii Diachkov 🇺🇦1 month ago

Proud to be neovim user

borrowck-novel's profile picture
borrowck-novel1 month ago

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

justinmk's profile picture
justinmk1 month ago

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

borrowck-novel's profile picture
borrowck-novel1 month ago

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.

adam smielewski's profile picture
adam smielewski1 month ago

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

ᕦ( ͡° ͜ʖ ͡°)ᕤ's profile picture
ᕦ( ͡° ͜ʖ ͡°)ᕤ1 month ago

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

Језда's profile picture
Језда1 month ago

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

justinmk's profile picture
justinmk1 month ago

multicursor

Pobedie's profile picture
Pobedie1 month ago

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

@falcucci's profile picture
@falcucci1 month ago

awesome.

Dipankar Das's profile picture
Dipankar Das1 month ago

Yes bro neovim for the WIN

Petr Hurtak's profile picture
Petr Hurtak1 month ago

Cc @rtfeldman :)

Gabriel's profile picture
Gabriel1 month ago

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

justinmk's profile picture
justinmk1 month ago

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.

Ye Yint Aung's profile picture
Ye Yint Aung1 month ago

I thought zed would be faster

justinmk's profile picture
justinmk1 month ago

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

Aavtic's profile picture
Aavtic1 month ago

How is that neovim?

Michael's profile picture
Michael1 month ago

Not bad 👍

Afonso Franco's profile picture
Afonso Franco1 month ago

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

justinmk's profile picture
justinmk1 month ago

this week. feedback/testing is very appreciated!

Tom's profile picture
Tom1 month ago

Now try Helix

justinmk's profile picture
justinmk1 month ago

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)

Језда's profile picture
Језда1 month ago

interesting

Gazi Refatul's profile picture
Gazi Refatul1 month ago

Which terminal emulator are you using?

justinmk's profile picture
justinmk1 month ago

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

Gazi Refatul's profile picture
Gazi Refatul1 month ago

Ahhh good I use kitty. 🐱

Ramtin Abadi's profile picture
Ramtin Abadi1 month ago

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

JSON x's profile picture
JSON x1 month ago

buffering

Nick Bernstein's profile picture
Nick Bernstein1 month ago

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

Chris R's profile picture
Chris R1 month ago

cursormaxxing

anil's profile picture
anil1 month ago

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

justinmk's profile picture
justinmk1 month ago

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

anil's profile picture
anil1 month ago

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?

justinmk's profile picture
justinmk1 month ago

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.

anil's profile picture
anil1 month ago

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

justinmk's profile picture
justinmk1 month ago

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

nkxxll's profile picture
nkxxll1 month ago

less is sometimes just more what should I say

justinmk's profile picture
justinmk1 month ago

say less

Wade Mealing's profile picture
Wade Mealing1 month ago

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

primordio's profile picture
primordio1 month ago

Imagine this is what decides it…

0xthw7's profile picture
0xthw71 month ago

how to fix neo-tree reliability n consistency?

justinmk's profile picture
justinmk1 month ago

add more cursors

Related Videos