# NeoVim
- Vim/Neovim simply cannot understand control backtick -- don't map anything to
it!
## Misc
- [Neovide](https://neovide.dev/)
## Plugins
- Manager
- `lazy.nvim` - active development, builtin UI, lazy loading, modern Lua and
NeoVim features
- `packer` - more established, less active development, lacking modern
features
- `Rocks.nvim`
- Tabs Navigation
- Bufferline - more features, pure Lua implementation
- Barbar - less actively maintained
- Theme
- [Tokyo Night](https://github.com/folke/tokyonight.nvim)
- [Gruvbox Material](https://github.com/sainnhe/gruvbox-material)
- Status Line
- [`lualine`](https://github.com/nvim-lualine/lualine.nvim) - implemented in
Lua, fast, extensible
- Airline
- Smooth Scroll
- [`neoscroll`](https://github.com/karb94/neoscroll.nvim), implemented in Lua,
allows more customizations
- [`vim-smoothie`](https://github.com/psliwka/vim-smoothie), implemented in
Vim Script, limited customizations
- [`mini.animate`](https://github.com/echasnovski/mini.animate), animations
for window as well, supports animations for more scrolling commands such as
`gg`, `G`, and `HLM`.
- [`cinnamon`](https://github.com/declancm/cinnamon.nvim/) supports animations
for more commands, but it doesn't support animation in non-file buffers yet.
- [Mason](https://github.com/williamboman/mason.nvim), a tool that manages
installation of LSP/DAP/Formatters/Linters
- [Mason Tool Installer](https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim),
the `mason-lspconfig` can only install LSPs, so we need this extension to
install other tools
- [[git|Git]]
- fugitive
- LazyGit is a terminal UI for Git, it can be used in combination with
floating terminal window tool
- [`toggleterm`](https://github.com/akinsho/toggleterm.nvim)
- [`floatterm`](https://github.com/voldikss/vim-floaterm)
- Or use an integrated solution like
[`lazygit.nvim`](https://github.com/kdheepak/lazygit.nvim)
### Editor
- Auto Pair
- [`lexima.nvim`](https://github.com/cohama/lexima.vim), implemented with Vim
script.
- [`auto-pairs`](https://github.com/jiangmiao/auto-pairs), also implemented in
Vim script. 0
[`mini.pairs`](https://github.com/echasnovski/mini.nvim/blob/main/readmes/mini-pairs.md)
- [`ultimate-autopair.nvim`](https://github.com/altermo/ultimate-autopair.nvim),
currently in maintenance mode, supports treesitter.
- [`nvim-autopairs`](https://github.com/windwp/nvim-autopairs), with
treesitter, author `windwp` also has `nvim-ts-autotag`.
### File Explorer
- [NerdTree](https://github.com/preservim/nerdtree), works in Vim, traditional
solution.
- [`nvim-tree`](https://github.com/nvim-tree/nvim-tree.lua), widely used,
implemented in Lua
- [NeoTree](https://github.com/nvim-neo-tree/neo-tree.nvim)
- Modern features
- Can be used with
[`nvim-lsp-file-operations`](https://github.com/antosha417/nvim-lsp-file-operations)
to rename imports automatically
- oil.nvim
- ChadTree
- Dirvish
- "Real" file explorers, suchas `nnn`, `ranger`, `lf`, etc.
- [Triptych](https://github.com/simonmclean/triptych.nvim), which also
integrates with `nvim-lsp-file-operations`
- Telescope can also be used as a file explorer
### Treesitter
- [`nvim-treesitter`](https://github.com/nvim-treesitter/nvim-treesitter),
provides syntax based highlighting, folding, refactoring, etc. Without
tree-sitter, this is done by regex, which is inaccurate.
- [Extra modules and plugins](https://github.com/nvim-treesitter/nvim-treesitter/wiki/Extra-modules-and-plugins)
for `nvim-treesitter`.
- [`fokle/twilight.nvim`](https://github.com/folke/twilight.nvim), dimmes
inactive part of the code, can be used with
[`folke/zen-mode.nvim`](https://github.com/folke/zen-mode.nvim)
### Completion
- [`nvim-cmp`](https://github.com/hrsh7th/nvim-cmp), a completion engine.
- [`blink.cmp`](https://github.com/Saghen/blink.cmp), a new, modern, out of the
box completion engine.
### [[markdown|Markdown]]
- Preview
- [`MeanderingProgrammer/render-markdown.nvim`](https://github.com/MeanderingProgrammer/render-markdown.nvim),
improved markdown rendering, used in LazyVim, provdies optional LaTeX
rendering support by converting formula into corresponding Unicodes.
- [Glow](https://github.com/ellisonleao/glow.nvim), in Vim Markdown preview.
- [Thiago4532/mdmath.nvim](https://github.com/Thiago4532/mdmath.nvim), renders
LaTex with Kitty Graphics protocol that actually looks like LaTeX. Doesn't
support Neovide.
- [`jbyuki/nabla.nvim`](https://github.com/jbyuki/nabla.nvim), renders LaTeX
with ASCii art, based on tree-sitter. Looks good in terminal but not so
accurate. Seems like doesn't support `\begin{case}`?
- [`diagram.nvim`](https://github.com/3rd/diagram.nvim), renders diagrams such
as [[mermaid|Mermaid]].
- Language Service
- [`preservim/vim-markdown`](https://github.com/preservim/vim-markdown) -
established solution, depends on `godlygeek/tabular`, to provide syntax
highlighting (but now we have tree-sitter and LSP)
- [Marksman](https://github.com/artempyanykh/marksman), the LSP for Markdown.
- [`mkdnflow.nvim`](https://github.com/jakewvincent/mkdnflow.nvim), should be
able to replace `obsidian.nvim`.
### AI
- [Codeium.nvim](https://github.com/Exafunction/codeium.nvim)
- [Copolot.vim](https://github.com/github/copilot.vim), created by GitHub,
maintained by Tim Pope.
- [Parrot.nvim](https://github.com/frankroeder/parrot.nvim), supports multiple
providers, a new and actively developed project, but mainly with commands.
- [Minuet AI](https://github.com/milanglacier/minuet-ai.nvim), supports multiple
providers, completion, and password manager CLI.
- CodeCompanion
### Mail Client
- [Himalya vim](https://github.com/pimalaya/himalaya-vim)