- 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.
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.
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
A recent example is that I removed all import cycles from our app last week (there where over 200) and I was able to do this purely with the IntelliJ "move symbols" refactor in a codebase of xxx,xxx lines of typescript. I can't figure out how to move a symbol to another file with LSP. I spent the first year of development at my current job when working on the front end and I'm simply more productive in IntelliJ compared to vim - I'm in vim for everything else tho (as long as it's not kotlin/java as I can't get LSP working for JVM projects).
https://www.jetbrains.com/help/idea/react.html#react_refacto...
I can't even get Neovim to run stably without throwing random errors every now and then, especially after I update plugins.
Regarding stability - pinning plug-in versions could be helpful. That’s what I’ve done and I’ve never had an issue with stability.
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.
Copilot + nvim + Termux makes it reasonable to code on a phone.
For file browser side-panes there are tons of options, but no one ever got fired for using the venerable old NERDTree.
The rest is mostly just tmux!
nvim-telescope/telescope.nvim // integrates well with code actions and searching (very extensible in general, similar to ctrl-p)
hrsh7th/nvim-cmp
hrsh7th/cmp-nvim-lsp // for language server completion
neovim/nvim-lspconfig // a bunch of language server specific stuff
note, that you'll probably need a bit of time to configure it to your liking and that nvim doesn't install the language server by itself, so that is something that you need to take care of by yourself as well.If you want to see what a preconfigured IDE-replacement might look like you can take a look at lunarvim(but beware, it misbehaves on windows quite a bit, you're better of with a linux system here)
It sucks because I want to use vim for TypeScript dev but I just can’t stand it compared to VS Code. For non-typed languages I still use vim, and I love how I can fluently edit anything on servers I shell into, but I kind of wish there was a middle ground of some kind.
In terms of turning things off, if you turn them off, then what’s the point of having the language server? (Not a rhetorical question - I would describe myself as a workaday programmer, not a master by any means.)
Code navigation and completion, for one.
But there are plenty of knobs to turn that provide a spectrum between “show nothing” and “show everything”. I also find the inline diagnostic text noisy, so I configure it to only show on the line where my cursor is. You can also use the “open_float” function to open the diagnostics on your current line in a floating window. That way you can leave them off my and simply view them on-demand.
https://marketplace.visualstudio.com/items?itemName=vscodevi...
Full disclosure: it’s been years since I used it, but I was super impressed
https://github.com/relaxdiego/dotfiles/blob/main/run_once_07...