Neovim configuration

Why I use it

Currently, I mostly use it for LaTeX. The setup compiles on save through Tectonic and previews in Zathura. telescope handles keyword and file search across the project.

I generally output research results into a numbers.tex file from Python and \input{} it into the paper, so the statistics stay synchronized.

The noise-free configuration helps me focus on my research rather than on the editor.

Programming language

There are plugins for Python already configured: pylsp for LSP, black for formatting, flake8 for linting, and nvim-dap with debugpy for debugging. Treesitter handles syntax highlighting and indentation for Lua, Python, JavaScript, HTML, and CSS out of the box, with auto-install on for anything else.

If you want a language that isn’t pre-configured, you can add the LSP server through Mason (:Mason, pick the server, install).

What it looks like

A few plugins do most of the visual work:

  • lualine with a custom theme.
  • noice reroutes the cmdline, messages, and LSP popups into floating windows, so the bottom of the screen stays clean.
  • barbar for the buffer tabs across the top.

Also few others useful plugins:

  • gitsigns for inline diff markers and hunk staging
  • trouble for a clean diagnostics panel
  • aerial for a symbol outline on the right
  • rose-pine (moon variant) for colors

Check the repository for the full plugin list, install instructions, and keymap reference.