Hello Indiehackers!
A while back I wrote a post asking for who knows Vim on Indiehackers
I got a lot of responses and useful advice.
Today I started to configure my .vimrc
and wanted to open this question up to the community:
Thanks for your help. The ocean 🌊 of Vim plugins out there can be quite a lot to take in. I have found some essential plugins such as NerdTree
and the palenight
theme, but I was wondering what other great plugins were out there.
Feel free to share in the comments below ⬇
Just to name a few for me:
https://github.com/terryma/vim-expand-region - Similar to IntelliJ's syntax aware selection.
https://github.com/ruanyl/vim-gh-line - Opening the line in the file in Github
https://github.com/neoclide/coc.nvim - My preferred choice for LSP for Vim.
https://github.com/junegunn/fzf.vim - fzf for vim
Thanks for these great resources!
My favorite recent discovery is coc.vim — it's fantastic for writing TypeScript in Vim (and a bunch of other stuff).
An old favorite is fzf.vim, which is amazing for quickly switching between buffers and files.
You can see my whole dotfiles here: https://github.com/rileytomasek/dotfiles
It's also worth mentioning vim-gitgutter in case anyone isn't already using it.
Thanks for these neat suggestions!
I have nerdtree, but honestly almost never use is. Vinegar, ctrlp and ripgrep are generally the fastest way for me to get around, along with some shortcuts I have for changing to directories of various projects I regularly work on. From the same author as vinegar, surround is also a nice little extension.
Some of my current favorites:
https://github.com/voldikss/vim-floaterm for floating terminal support. Super handy versus tmux/backgrounding vim
https://github.com/neovim/nvim-lspconfig for common LSP configs so you can get away from the bloatiness that is coc
https://github.com/andymass/vim-matchup for better text matching. Think scoped blocks, etc. Really handy.
https://github.com/skywind3000/asynctasks.vim because everything can be thought of as a little task. Building, linting or even kicking off deploys.
https://github.com/lambdalisue/gina.vim super asynchronous Git runner of sorts. Works very hard to make Git easier using the vim repeat key (.)
ALE Linter for linting: https://github.com/dense-analysis/ale
My setup is kinda set in stone and not changing much in the last few years, I'm super happy with it. For inspiration, you can check my vim config here, there's a lot of cool stuff, in my opinion at least, maybe you'll find something to adopt/borrow as well :)
https://github.com/mikekreeki/dotfiles/blob/master/.nvimrc
I've wrote an article about Vim plugins for PHP if somebody's interested. Even if you don't care about PHP you could find some interesting stuff in there.
Other than that:
Here're my dotfiles with many more
Tons of great suggestions here, but look for Tim Pope plugins, many of which are must-haves. Two to get you started are:
Surround
I feel like this functionality should ship with Vim, but it makes it trivial to surround the word or line you're on with quotes, parens, or HTML tags.
Abolish
Much more situational, but two particular pieces of this plugin that I now can't live without are the substitution (e.g. the example he gives is substituting all the instances of the word "building" with "facility" while preserving the casing and plural such as building -> facility, Building -> Facility, Buildings -> Facilities, etc.) and coercion easy changing from camelCase to snake_case or vice versa
Tim is an extremely prolific Vim plugin writer so just look through his Github for plugins that interests you. They're all well-written and well-documented.
Several people have mentioned coc.nvim which is a bit hard to set up but totally worth it, especially if you develop in a typed language. Happy to provide more recommendations if you're hungry for more. Good luck!
I recently found this markdown rendering plugin that autosyncs your vim cursor with the rendered web page: https://github.com/iamcco/markdown-preview.nvim
Nice! Thanks!