I use a lot of them, many specific to my work, but here are some of the ones that I think will most improve the quality of life for most developers.

- For a plug-in manager I user packer

- For file/text search I recommend telescope (https://github.com/nvim-telescope/telescope.nvim)

- Copilot (https://github.com/github/copilot.vim)

- Nerd tree for file browsing (https://github.com/preservim/nerdtree)

- commentary for commenting (https://github.com/tpope/vim-commentary)

- ALE for linting (https://github.com/dense-analysis/ale)

- Mason for installing LSP servers (https://github.com/williamboman/mason.nvim)

Once you have the proper tooling in place you can do pretty much everything in vim that you are doing in vs code or intelliJ. I've just started using it for most of my dev work recently and I have found ThePrimeagen's youtube videos on vim to be a great resource.

Series on using vim as you editor (https://www.youtube.com/playlist?list=PLm323Lc7iSW_wuxqmKx_x...)

Introduction to setting up your vim configuration (https://www.youtube.com/watch?v=x2QJYq4IX6M&t=512s)

I recommend giving it a try. The process of learning it all was fun, and as you may have heard you can eventually get pretty quick using Vim.

Is there an LSP that allows refactoring Python code like PyCharm?

I haven't found any other tools that does simple things like extracting a function, renaming or inlining variables. For example, vscode's Python support is terrible.

Jetbrains IDEs have refactorings that are light-years ahead of any LSP functionality. I can use nvim for simple or small code bases, but for any real work project I've had to use IntelliJ.

For example, I had a VSCode coworker who was asking to switch all typescript string union types to enums so they could be refactored, but IntelliJ is able to refactor (in this case rename) the string union types

Right. vim (and the likes) are only good for server side config editing but these days remote plugin of vs code can also take that role away.

This just simply isn’t true. Neovim is perfectly capable of (and I would argue excels at) being a daily driver on large projects.

Compared to JetBrains, no thanks.

I can't even get Neovim to run stably without throwing random errors every now and then, especially after I update plugins.

I do love JetBrains products. But they were too memory-hungry for me. I stepped away from GoLand and into Neovim and it’s been by far the best experience the past year and a half. So far, there is not a single feature I miss or haven’t been able to duplicate.

Regarding stability - pinning plug-in versions could be helpful. That’s what I’ve done and I’ve never had an issue with stability.

I have both PHPStorm and Pycharm running, each takes up 4+GB memory on a 8G M1. Slowly growing memory usage for WindowServer process makes matter worse.

For the last week, I have been playing with Neovim in spare time using a setup based on https://github.com/LunarVim/nvim-basic-ide It does pinning plug-in too.

It's working well for small projects so far.