**Websites with plugins:**

- [awesome-neovim](https://github.com/rockerBOO/awesome-neovim): List of modern Neovim plugins (most of them written in Lua)
- [vimawesome.com](https://vimawesome.com/): Searchable website with all Vim and Neovim plugins

**Recommended plugins:**

- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim): Fuzzy finder for everything
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig): Configuration to enable built-in LSP
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp): Autocompletion
- [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer): For installing and updating language servers from inside of Neovim
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter): Configuration to enable built-in treesitter
- [barbar.nvim](https://github.com/romgrk/barbar.nvim) or [bufferline.nvim](https://github.com/akinsho/bufferline.nvim): Show open files (buffers) at the top as tabs
- [Comment.nvim](https://github.com/numToStr/Comment.nvim): For toggling comments
- [formatter.nvim](https://github.com/mhartington/formatter.nvim): For autoformatting on save
- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim): Display indent guides
- [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua): File explorer
- [neoscroll.nvim](https://github.com/karb94/neoscroll.nvim): Smooth scrolling animations
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim): Statusline
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim): Indicates git status for edited lines
- [lspkind-nvim](https://github.com/onsails/lspkind-nvim): Show icons in autocompletion menu
- [nvim-autopairs](https://github.com/windwp/nvim-autopairs): Auto close parentheses, brackets, etc.
- [vim-textobj-entire](https://github.com/kana/vim-textobj-entire): Adds `ie` as in "in entire" as text object, for targeting the entire file
- [vim-surrround](https://github.com/tpope/vim-surround): Adds grammar for adding, removing and changing surrounding characters like `(`, `{`, `"`, etc.
  - Recommended config:
    ```vim
    xmap s <Plug>VSurround
    xmap S <Plug>VgSurround
    nmap s ys
    nmap S ys$
    ```
- [vim-repeat](tpope/vim-repeat): Allows repeating commands from plugins with `.`, for instance vim-surround
- [quick-scope](https://github.com/vim-scripts/quick-scope): Shows unique characters to jump to using `t`/`T`/`f`/`F`
  - Recommended config:
    ```vim
    let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
    ```