Plugins
IceNvim uses a variety of plugins to guarantee a smooth editing experience.
Plugin Manager¶
IceNvim uses lazy.nvim as plugin manager. It is modern, powerful, and extremely easy to use.
Beware that the way IceNvim uses Lazy is slightly different from the official approach, which we shall see later in the customization section. The majority, though, remains unchanged, which is why a little knowledge on how to use this plugin manager would be helpful should you wish to further customize Lazy in IceNvim.
Colorscheme and UI¶
IceNvim comes with the following colorschemes (and their variants; for details, check out the corresponding repositories):
- github theme
- gruvbox theme
- kanagawa theme
- miasma theme
- nightfox theme
- tokyonight theme (this is the first theme I used for neovim btw)
As well as some other UI-related plugins, including:
- bufferline: displays opened buffers at the top
- dashboard: provides a welcome screen when opening neovim
- fidget: displays pretty notifications
- indent-blankline: adds indentation lines
- lualine: displays various info about neovim at the bottom
- nvim-scrollview: displays a scroll bar
- nvim-transparent: makes most background colors of neovim transparent
- rainbow-delimiters: use different colors for paired parentheses
- winsep: indicates the window currently being focused
Improving Editting Experience¶
IceNvim uses various plugins for better editting experience:
- grug-far: better find / replace
- hop: hops to the desired position with a few key presses
- nvim-autopairs: automatically closes pairs such as parentheses
- surround: surround text with parentheses or tags easily
- ufo: better folding
- undotree: visualize your edits so that you can undo them with much ease
Useful Tools for Development¶
Apart from the necessary plugins for basic editting, IceNvim also includes several useful plugins that boost development efficiency:
- avante: use neovim like using using Cursor AI IDE; disabled by default
- colorizer: colorize rgb / hex / ... colors
- gitsigns: git integration for buffers
- markdown-preview: live preview for markdown files
- neogit: an extremely powerful and handy git interface
- nvim-tree: displays file tree
- nvim-treesitter: build a syntax tree and enable better highlighting, and much much more
- telescope: find, filter, preview, pick... you name it
- todo-comments: highlight todo / warn / fix / perf / ... comments
- trouble: a pretty list for showing diagnostics, references, etc.
Auto completions, diagnostics, formatting, etc., are managed by these extra plugins:
- blink-cmp: incredibly fast completion
- mason: manage lsp / formatter sources
- null-ls: code formatter; IceNvim actually uses none-ls, a fork of the original null-ls project
- lspsaga: collection of useful lsp utilities like hover docs and displaying diagnostics
Some languages also require extra plugins (disabled by default):
- flutter-tools.nvim: flutter development
- rustaceanvim: rust development
- typst-preview.nvim: writing with typst