A modern Neovim configuration built on NvChad v2.5, with a focus on LaTeX editing, AI-assisted coding, and polyglot LSP support.
Features • Requirements • Installation • Configuration • Key mappings • Post-install
- NvChad foundation -- Clean UI with
tokyonighttheme, statusline, tabufline, and file explorer - LSP everywhere -- Automatic language support via
neovim/nvim-lspconfigfor TypeScript, Python, C/C++, LaTeX, HTML, CSS, JSON, Markdown, Terraform, Lua, Bash, Docker, YAML - Format on save -- Auto-formatting with
conform.nvim(prettier, black, clang-format, latexindent, stylua, shfmt, terraform_fmt) - Lint on save -- Real-time linting with
nvim-lint(eslint_d, pylint) - Modern completion --
blink.cmpfor fast, built-in completions - AI code completion -- Codeium integration for AI-powered suggestions
- LaTeX toolchain -- Treesitter highlighting,
vimtex,luasnip-latex-snippets,nabla.nvimfor inline math preview - Treesitter -- Syntax highlighting for Lua, VimL, Markdown, LaTeX, BibTeX, Python, C/C++, JavaScript, TypeScript, JSON, YAML, Bash, Terraform, Go, Rust, and more
- Plugin manager --
lazy.nvimwith aggressive startup optimization (21 built-in plugins disabled) - Mason -- Auto-installs
tree-sitter-cliand other LSP/tool binaries
- Neovim >= 0.9.0
- Git 2.19+
- A Nerd Font (for icons)
make,gcc, andripgrep(fortelescope.nvimandnvim-treesitter)
Important
This configuration replaces your existing Neovim configuration. Back up your current config before proceeding:
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bakClone the repository:
git clone https://github.com/Aireck2/nvim-config ~/.config/nvimStart Neovim:
nvimlazy.nvim bootstraps automatically on first launch. All plugins will be installed and configured. Restart Neovim once the installation completes.
The configuration is structured in lua/:
| Path | Purpose |
|---|---|
init.lua |
Entry point -- bootstraps lazy.nvim, loads NvChad + user plugins |
lua/chadrc.lua |
NvChad UI options (theme, dashboard, tabufline) |
lua/mappings.lua |
Custom keymaps |
lua/options.lua |
Neovim options (delegates to NvChad defaults) |
lua/autocmds.lua |
Autocommands (delegates to NvChad defaults) |
lua/plugins/init.lua |
User plugin specifications |
lua/configs/lazy.lua |
lazy.nvim configuration and performance tuning |
lua/configs/lspconfig.lua |
LSP server list |
lua/configs/conform.lua |
Formatting rules per filetype |
lua/configs/lint.lua |
Linting rules per filetype |
| Server | File types |
|---|---|
ts_ls |
TypeScript, JavaScript, JSX, TSX |
pyright |
Python |
clangd |
C, C++ |
texlab |
LaTeX |
marksman |
Markdown |
lua_ls |
Lua |
bashls |
Bash |
yamlls |
YAML |
terraformls |
Terraform |
dockerls |
Dockerfile |
prettypst |
Typst |
html / cssls / jsonls |
Web languages |
| File type | Formatter |
|---|---|
| Python | black |
| C++ | clang-format |
| JavaScript / TypeScript | prettier |
| Markdown | prettier |
| LaTeX | latexindent |
| Lua | stylua |
| Terraform | terraform_fmt |
| Shell | shfmt |
| YAML / JSON | prettier |
| File type | Linter |
|---|---|
| Python | pylint |
| JavaScript / TypeScript | eslint_d |
| Mode | Keys | Action |
|---|---|---|
| Normal | ; |
Enter command mode (:) |
| Insert | jk |
Exit insert mode (<Esc>) |
All standard NvChad mappings apply:
<leader>e-- Toggle file explorer<leader>ff-- Find files (Telescope)<leader>fw-- Live grep (Telescope)<leader>p-- Nabla math preview popup<leader>mt-- Toggle Nabla virtual math text
- Install LSP servers -- Run
:Masonand install any additional LSP servers you need - Install formatters -- Ensure
black,prettier,clang-format, andlatexindentare available on your$PATH - Codeium -- Run
:Codeium Authto authenticate your Codeium account for AI completions - Treesitter -- Run
:TSInstall allto install additional language parsers
Tip
To customize the theme or UI options, edit lua/chadrc.lua.
To add new plugins, add their specifications to lua/plugins/init.lua.
