I feel like this is something said by people who are more invested in VS Code than vim. The main vim plugin for VS Code is straight trash.* It's slow, buggy, and unintuitive; while lacking the extensibility that vim has. At least IDEAVim, which has the same limitations of being built in another IDE, replicates enough of the common plugins to be pleasant.
It's also worth noting that onivim is not VS Code repackaged. It is not an electron app, and it doesn't appear to use the monaco editor. They have apparently taken great design inspiration from VS Code, which I think is a fairly diffident decision.
Overall, I'm looking at neovim nightly and not knowing why onivim is a thing. I can understand the appeal of a GUI vim, but implementing a vim backend is a monumental task if you intend to be compatible with existing vim plugins (and you should). Nvim 0.5 has native lua, and now freed from vimscript the quality of plugins is improving continuously. I just can't see a way for a 'third vim' - if you don't start with vimscript you won't be compatible, but if you do you're already outdated.
* There are a few attempts to splice VS Code and neovim, all of these are awful.
We skipped that and haven't implemented any vim backend at all!
We use/made libvim[1], which is just the vim source, that we've essentially turned into a library. So its the vim code base with terminal UI stuff stripped out, and an interface added for us to hook into it. The README of that repo has some good insight into that (including why we didn't use neovim here, as much as the team all loves nvim).
We don't support vimscript stuff at the moment, but its in progress as all the vim source code is there to load/run it as normal, its just about integrating is properly into Oni2 (making sure keybinds are working, commands are properly loaded, packing stuff up nicely for distrib etc).
(There is some other motivation bits in this doc[2]. Its outdated since we haven't edited it since before the project started, but it outlines the motivations we went in with etc).
[1]: https://github.com/onivim/libvim [2]: https://github.com/onivim/oni2/blob/master/docs/MOTIVATION.m...
You took out the most important part!
I don’t know about other people, but I became a vim user because I found myself configuring servers and needed to know a better text editor than nano.
Vim is also my primary code editor these days but portability is still a killer feature.
The point of this is to bring Vim into more modern workflows, not but "vim compat" but literally... vim.
Source: had some pull requests into libvim a while back to remove a lot of the various legacy compat features that don't make sense for libvim.
Answered here [1].
> I personally find Lua far more intuitive than Vimscript...
One of the biggest motivating factors for the rewrite of Oni was the limitations imposed by Vim/Neovim of a terminal grid of characters in the rendering layer: “Neovim treats the visible screen as a grid of cells” [2]. This precluded implementing CodeLens amongst other things [3].
I’m also a fan of Lua — I’ve written a substantial amount of Fennel — but given Oni’s goals, revamping Vim’s rendering layer is of higher importance than Lua support, particularly since the VSCode extension ecosystem is being relied upon anyway. Onivim is designed as more of a direct challenge to heavyweight IDEs than as a substitute for Vim. I already switch between Vim and VSCode depending on requirements, but it’d be great to have the best possible support for modal editing in VSCode.
[1]: https://github.com/onivim/libvim#why-is-libvim-based-on-vim-...
[2]: https://onivim.github.io/docs/other/motivation#a-new-view-la...
0: https://github.com/onivim/libvim#why-is-libvim-based-on-vim-...
1: https://www.reddit.com/r/neovim/comments/cdf36v/onivim2_chan...
I like vim and use plugins in all my IDEs because I like the idea of a modal editor and the basic vim is super powerful.
But it’s way easier to get IntelliJ or VSCode setup than your custom vim.
It would be great if there was a reference core engine of sorts that everyone could use in whatever editor.
Partially that is a thank you to those who have supported our development, and partially its to help put up a small barrier to entry, just so we don't get too flooded with issues and feature requests!
A public release is coming soon-ish, and can be used for non-commercial use.
Is there a particular reason why do you need such an amount of dependencies for building an editor?
That said, when I did this it was a one-time cost, and it looks like now it's a Patreon thing. Still though, $10 is pretty cheap, and if you hate it, you can always cancel. Or at least, that's how I think about these things these days. Not everyone has $10 to spare on stuff like this, but I am fortunate to.
https://onivim.github.io/docs/other/faq#is-there-a-trial-ver...