NeoVim

  • Vim/Neovim simply cannot understand control backtick — don’t map anything to it!

Misc

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
  • Status Line
    • lualine - implemented in Lua, fast, extensible
    • Airline
  • Smooth Scroll
    • neoscroll, implemented in Lua, allows more customizations
    • vim-smoothie, implemented in Vim Script, limited customizations
    • mini.animate, animations for window as well, supports animations for more scrolling commands such as gg, G, and HLM.
    • cinnamon supports animations for more commands, but it doesn’t support animation in non-file buffers yet.
  • Mason, a tool that manages installation of LSP/DAP/Formatters/Linters
    • Mason Tool Installer, the mason-lspconfig can only install LSPs, so we need this extension to install other tools
  • Git
    • fugitive
    • LazyGit is a terminal UI for Git, it can be used in combination with floating terminal window tool
  • Code runner

Picker

  • Telescope. Traditional choice, not as performant as other options. LazyVim moved from Telescope to fzf-lua.
  • The picker that comes with Snacks
  • mini.pick
  • fzf-lua. The frecency feature is still a work in progress. It launches a terminal buffer, which may or may not be desirable. (Some can argue this ensures a consistent interface between Neovim and fzf in terminal)

Editor

File Explorer

  • NerdTree, works in Vim, traditional solution.
  • nvim-tree, widely used, implemented in Lua
  • NeoTree
  • oil.nvim
  • ChadTree
  • Dirvish
  • “Real” file explorers, such as nnn, ranger, lf, etc.
  • Triptych, which also integrates with nvim-lsp-file-operations

Treesitter

Completion

  • nvim-cmp, a completion engine.
  • blink.cmp, a new, modern, out of the box completion engine.

Markdown

  • Preview
    • MeanderingProgrammer/render-markdown.nvim, improved markdown rendering, used in LazyVim, provdies optional LaTeX rendering support by converting formula into corresponding Unicodes.
    • Glow, in Vim Markdown preview.
    • Thiago4532/mdmath.nvim, renders LaTex with Kitty Graphics protocol that actually looks like LaTeX. Doesn’t support Neovide.
    • 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, renders diagrams such as Mermaid.
  • Language Service
    • preservim/vim-markdown - established solution, depends on godlygeek/tabular, to provide syntax highlighting (but now we have tree-sitter and LSP)
    • Marksman, the LSP for Markdown.
    • mkdnflow.nvim, should be able to replace obsidian.nvim.

AI

  • Codeium.nvim
  • Copilot.vim, created by GitHub, maintained by Tim Pope.
  • Parrot.nvim, supports multiple providers, a new and actively developed project, but mainly with commands.
  • Minuet AI, supports multiple providers, completion, and password manager CLI.
  • CodeCompanion