I love Neovim. I switched from VSCode and never looked back, it's just so much more efficient to just do everything with your keyboard. In case someone is interested how to do the things you're used to from VSCode, I created some videos: https://youtube.com/playlist?list=PLu-ydI-PCl0OEG0ZEqLRRuCrM...
Funny, I switched from neovim to VSCode + the vim plugin. Sure, it doesn't have everything I would do with vim supported, but it's enough and overall it's a better experience
I've started using the vscode neovim plugin. It runs a headless neovim in the background so you get literally everything that both editors provide in one. It's not 100% flawless but it is damn good.
I used to flip between the two anyway - if I needed a better intellisense for, say, a large typescript project, then vscode won, everything else was nvim. Now I have the intellisense of vscode ontop of neovim.
As a LONG time Vim (now Neovim) user, I've been pretty curious to try this as it would allow me to retain some of my beloved plugins and custom config without the effort of trying to find replacements or reproduce my config stuff. I imagine I could also get rid of most of the language server / autocomplete / code navigation type stuff that comes easier in VS code. It could potentially be the best of both worlds if it's done as well as I'm hoping it is.
I haven't tried it yet, but my main concern is that VS Code probably has a lot of keyboard shortcuts (e.g., C-v for visual block mode) that I'd have to reassign, which could potentially be a bit of a pain initially.
Mind sharing any pros/cons you've run into with the Neovim plugin so far?
I've been using it for a couple months now. It's really quite good and the plugin disables most (all?) of the clashing hotkeys.
The only thing I've noticed is sometimes there's a delay on the Esc key detection to exit insert mode. That could be my binding of CapsLock to Esc/Ctrl though (with a combination of xmodmap and xcape).
I'm also a long time vim user but this has made it bearable to use the same editor as the rest of the team (engineers who need to code, not software engineers) so that they understand what's happening when pair programming etc.
I started with vscode but moved to (neo)vim 2 or 3 years ago. Last year I experimented going back to vscode with one of the vim plugins.
By default there are some conflicting keybinds like ctrl-o and ctrl-v, but these can be disabled in vscode settings.json so wasn’t a problem.
The main feature that doesn’t work over the neovim-vscode rpc bridge is undo tree, that was important to me. You also have to put up with much slower start up times and slower syntax highlighting because vscode uses lsp highlighting.
But the deal breaker for me was losing any vim plug-in with a ui component like fzf, fugitive, and the file tree I like (fern.vim).
It might work for you, some coworkers switched from vim to vscode-neovim and were very happy with the compromise.
I tried switching to VSCode with the vim plugin. but I got frustrated with vim keys that didn't quite work right on VSCode. And iirc configuring custom vim-style bindings was quite a pain. And then there were the neovim/vim plugins that I used that didn't have good equivalents in VSCode, especially that worked well with the vim plugin.
You were probably using the more popular vscodevim with its 2.7M installs. Try vscode-neovim with its merely 93K installs.
vscode-neovim is designed for and requires neovim 0.5. I hate, hate, hated vscodevim but vscode-neovim is very good, very usable; I stopped using VSC altogether until vscode-neovim got real. It's not perfect, it still needs work on command mode, but it's quite usable. I even got rid of my other vims (MacVim, VimR, ...).
Regarding programming languages, the answer is the language server protocol (LSP), an editor-agnostic way to use IDE-like features, originally developed for VSCode. Works for both Neovim and VSCode (and many others). Somewhat ironic that one of VSCode's best inventions is the one which made me switch away from it.
I just switched from 0.4 to 0.5 specifically for LSP and treesitter support. There is zero difference between it and vscode for me now. Neovim 0.5 is a game changer and closes the gap between it and vscode.
I saw it as Microsoft's signalling that they care more about being in the good graces of the wider developer community than about dominating the programming editor/IDE market. After all VSCode is free. I'd argue that giving away VSCode, LSP, Monaco (the base editor) and so on has been a successful means of redeeming their brand in the eyes of developers and really anyone who ever touches code. That could backfire if they took on an aggressively competitive stance. Letting LSP play nicely with other editors seems therefore good business for them. It also appears that as a profitable business, money Microsoft spends on VSCode might otherwise be spent as taxes?
If I am up to date TypeScript doesn't actually provide LSP and the 3rd party implementation is a wrapper around TS language server custom protocol and is worse in comparison. (They have/had plans to change this but it's been years since I saw the issue raised and not much progress from what I saw, haven't checked in last couple of months since I'm no longer in TS space)
IMO TypeScript is VSCode strongest use case - I would use VS code over VisualStudio for example on C# projects when I had to edit fronted parts - it was so much better. IntelliJ TS stuff is the only thing that comes close/is on par maybe and I'm a happy camper in that ecosystem for the last few years.
None of the LSP plugins I've tried with neovim worked nearly as well as they do in VSCode (the few times I tried to spin it up for old times sake).
Well, mostly of the language specific plugins are language server protocols (LSP), you only need a client to make they work on any editor, I used to use CoC on vim to have that power, but now with the new version of NeoVim the client is build-in, so...
but comments above are suggesting that because of LSP (Language server protocols) plugins can be portable now, from one editor to another
i thought each editor needed its own plugin, and VS Code always seem to have the main plugin, didnt really come across plugins that run across multiple editor, but then i was not really checking this, next time i will check it
It's not that plugins are portable. LSP allows any editor that supports the protocol to provide language support (using a backend "language server" that is editor-agnostic), so it is not that hard for most editors these days to provide good intellisense/syntax-highlighting etc. that used to be limited to commercial-grade IDEs.
I'd love to go back to (neo)vim. I like vscode fine, but sometimes it sounds like a rocket is taking off from my laptop. However, the ability to have a full remote development environment act pretty much exactly like the local one is the absolute vscode killer feature. I just can't go back to a ssh season, cloning the plugins, and dealing with occasional latency.
I've tried VSCode a couple of times but I always go back to Neovim. VSCode still depends on the mouse and that kills it for me. I haven't found anything I can't do in Neovim actually. I have a nice setup with Tmux and being already in the terminal is just too convenient and fun.