One question is: will more plugin authors move to Vim9Script? It seems that Neovim users have generally moved towards Lua-based plugins, so there's less of a motivation to produce plugins that support both Neovim and Vim9.
But Lua support in Neovim is the primary reason I moved over from Emacs. Elisp and Vim are both so heart sink for me.
That said I'd have preferred something other than Lua if I had the choice.
Same. I know we as a community would never agree on what that language should be, but in my dreams it would have been ruby. Even javascript would have been better for me than Lua.
Denops is super easy to use, works great. Connects over RPC. https://github.com/vim-denops/denops.vim
Nvim-oxi is wild. Uses neovim's FFI to let you write Rust that talks directly to neovim. https://github.com/noib3/nvim-oxi
Denops has always been a niche but it was a really popular niche for a couple years. Activity is fading somewhat. I'm still doing my plugin dev in lua, and it's... survivable. But I do think of switching more into one of these options.
I settled on vim for its technical merits but Bram using his goodwill to fund a charity like this for so long always made me feel good about my choice.
In the end I just kept quiet about the fact that it ships in all the Linux package repos.
(Just to be clear, I fully support what Bram did here)
Also, I cannot think of an extension / new feature that makes sense as a part of Vim (if I want something more, I want a lot more. I don't want Vim to do a lot more, for the sake of simplicity and conformity, that's a job for vscode with Vim extension).
At the same time I wouldn't object to someone adding features to this program. But they have to try really hard to convince me to start relying on that feature (I wouldn't, because I would miss it on Ubuntu 20.04 and I will forget how I used to work without that feature).
I tried nvim a few years ago and honestly didn't find anything advantageous there. But since I had `:sh` in muscle memory and it was a bit (very?) different there I gave up on nvim.
Honestly a lot of this is that I hate Lua. With so much of the infrastructure moving in that direction it's basically unavoidable. XDG support was honestly one of the things holding me back; I'm glad that this is finally fixed.
So - on the occasion of VIm 9.2 coming out - do people have a recommendation for a gentle path to "leveling up" one's VIm skills and engagement?
And the VimL Primer[2] by B. Klein
But Vim is a whole culture that starts with ed(1), the standard editor. You do edit based on line numbers and regex addressing and commands. Then there was ex(1) that added more features. vi(1) added a `visual` mode to ex(1), and some commands can now be done in relation to the position of the cursor. Vim is the improved version of vi(1), a lot more commands and a scripting language.
The plugin system is similar to everything that was unix at that time, relying on a variable like $PATH. Any path added to that variable (runtimepath for vim), should follow some patterns for subdirectories and the file will be loaded according to a certain logic. Plugin managers actually manage that variable and do a few things aside (isolating plugins, downloading from forges,...)
[0]: https://pragprog.com/titles/dnvim2/practical-vim-second-edit...
[1]: https://pragprog.com/titles/modvim/modern-vim/
[2]: https://www.oreilly.com/library/view/the-viml-primer/9781680...
the scripting language is.. okay, but u have to try doing something practical in it, to get a feeling.
see my vimrc, being updating it since ~2000
https://github.com/svilendobrev/svd_bin/blob/master/qini/_vi...
It seems they didn't publish the tag yet though.
Only joking of course, actually quite refreshing to see a new version announcement of something this major without any AI nonsense.
That was a little tricky to set-up. I ended up writing nvim-auto-listen, which uses some heuristics to find your project root, and starts a .nvim.socket in that directory. That makes it easy for mcp-neovim-server instances to find. https://github.com/rektide/nvim-auto-listen/
I'm only somewhat getting started, but the workmanship, fit and finish is just outstanding on Codecompanion, for a fantastically well put together in vim agentic experience. Works really well driving a headless opencode mcp. Being able to stay in vim but still get a great opencode powered experience has been mind blowingly sick. https://github.com/olimorris/codecompanion.nvim
Obviously vim doesn't need AI, but one feature I really wish vim had was native support for multiple cursors.
It's the feature that lured me away to Sublime Text in the first place many years ago, and it's a pre-requisite for pretty much every editor I use these days, from VSCode to Zed.
There are plugins, but multicursor is such a powerful force-multiplier that I think a native implementation would benefit.
If you need multi-cursor to do manual search and replace in text, then don't, just do automatic search and replace, maybe scoped to a block. If you need multi-cursor for refactoring or renaming a variable across entire source file, then don't, use LSP plugin (or switch to Neovim) and do the proper refactoring action.
Sure, there are legit cases of using multi-cursor in Vim, but they are rare. So it's not worth to put it into Vim itself.
Ctrl-V, then move down the lines you want to edit, Shift-I to insert text on multiple lines at once.
Actual Intelligence. It's connected to fingers/hands/arms/torso that is using it.
https://aider.chat/docs/usage/watch.html
I imagine with vim, from the document you're editing, you'd go:
:ter
to get a terminal. Fire up aider with --watch-files in the terminal. Hop back up to the file and start telling it what to do. Hit L when it's done to see the changes.
That's just a guess but after writing it out I kinda want to try it.
When I use aider it's via its chat interface and then I load the file with vim in another terminal tab to follow along but I think --watch-files with vim would be fun.
Also related to my nvim workflow but not strictly vim related: I use AI to write and update a bash script that handles tmux windows. Again, it lowered the barrier to entry and it made switching to nvim as my primary editor easier.
I still have PyCharm, especially for working with data which I do a lot it helps quite a bit, but by default I'm back to a very vanilla Vim setup. Others have mentioned tmux which is great and I'd use anyway especially over ssh, but even just terminal tabs for instances of agents are fine frankly.
>Full support for the Wayland UI
I really hope they never deprecate X11 support :) I doubt they will, but if they do, it will leave the BSDs without a good alternative.
A NetBSD posted a blog stating NetBSD is having issues porting Wayland due to Linux specific items. OpenBSD stated something similar.
Both articles indicated it will be a very long time, if ever, to get Wayland fully working on their systems. I did see this presentation that describes some issues as of 2025.
https://www.bsdcan.org/2025/talks/BSDCan2025-jeff_frasca-way...
Usually vim runs I’m the terminal, so I don’t have any worries about losing support. But other people have other use-cases, of course…
I was such a proponent.
If I'm entirely reading code for bugs, then using voice to text to the AI to correct the problem... What typing am I doing?
Still love the idea of Vim.
cool
As early vim (vi imitation) user on Amiga, I can't imagine living without it.
Congratulations on the new release! Looking forward to applying these awesome improvements.
Typically, I just pipe the output of my buffer to external commands to apply similar transformations that Notepad++ offers out of the box, but I would think the same would be challenging to do on Windows without Cygwin to close the gap. So a Vim macro collection similar to Notepad++ implemented in Vim script or Lua would be pretty cool.
https://en.wikipedia.org/wiki/Vim_(text_editor)#Versions
The complaint, including from the Neovim founder, was that Moolenar rejected their update.
Woot?
Yes.
While walking around a file with keyboard, sometimes a random line's indent is removed - that is, text goes left-flushed. AND it's not a tracked change that can be UNDOne - as if it never happened / always has-been-so. Have not been able to correlate this to any other thing. It happens like once a few days, very rarely it might happen twice within minutes. Sometimes i notice that, sometimes i don't and (luckily) python screams of broken indentation. If the file isn't deeply nested python.. good luck.
Has anyone "achieved" such a thing?
One little thought is, has there been much drama between the vim and neovim communities? (I guess community can be defined broadly enough that the answer to that question is always “yes,” but I haven’t seen much). They both seem completely happy to just do their own thing. I think the perennial argument just exits in the mind of some fans.
It is nice to see a pair of projects with so much potential for competition coexisting peacefully. Plenty of room on the internet I guess.
Not that I agree with your parent comment or anything (I don’t), I use Helix so don’t really have a dog in this fight, I think it’s fine for them all to coexist.