A personal Neovim configuration optimized for React, TypeScript, Python, and general development. Built on LazyVim with Lazy.nvim for modular plugin management.
- Overview
- Core Plugins
- Language Support
- Editor Features
- Navigation & Keybindings
- Fuzzy Finder
- LSP & Development Tools
- Snippets
- Status Line
- Markdown Preview
- Installation
- Configuration Notes
- Contributing
- References
This configuration is designed for fast, productive development in modern web and backend languages. It includes:
- LSP support for TypeScript, JavaScript, Python, HTML, CSS, JSON
- Auto-completion with emoji support
- Live diagnostics and error reporting
- Treesitter syntax highlighting and code folding
- File explorer and bufferline for efficient navigation
- Web-based Markdown preview for documentation editing
- Auto-save functionality
| Plugin | Purpose |
|---|---|
| LazyVim | Modular Neovim framework |
| Lazy.nvim | Lazy-loading plugin manager |
| nvim-tree.lua | File explorer (right side) |
| bufferline.nvim | Buffer tabs in slanted style |
| nvim-web-devicons | File type icons |
| auto-save.nvim | Automatic file saving |
| trouble.nvim | Diagnostics panel |
| nvim-cmp | Auto-completion engine |
| Language | Server |
|---|---|
| TypeScript/JavaScript | ts_ls (tsserver) |
| Python | pyright |
| HTML | html |
| CSS | cssls |
| JSON | jsonls |
| TailwindCSS | tailwindcss |
Installed parsers for enhanced syntax highlighting and code folding:
- Automatically saves files on leaving insert mode or after text changes
- Does not interfere with LSP diagnostics
nvim-cmpwith emoji support- Snippet integration with LuaSnip
- Live inline error messages with virtual text
- Gutter signs for errors and warnings
- Underlines for diagnostic highlights
- Severity sorting for better readability
| File Type | Formatter |
|---|---|
| Lua | stylua |
| JavaScript/TypeScript | prettier |
| Shell | shfmt |
| Markdown | markdownlint |
Note: Python formatting (black) has been removed due to installation issues.
Leader key is set to Space by default.
| Key | Action |
|---|---|
<leader>e |
Show floating diagnostic window |
[d |
Go to previous diagnostic |
]d |
Go to next diagnostic |
<C-n> |
Toggle Trouble diagnostics panel |
| Key | Action |
|---|---|
<leader>f |
Format current file |
<leader>v |
Toggle Markdown preview (browser-based) |
Telescope.nvim for fast file and content searching.
| Key | Action |
|---|---|
<leader>fp |
Find project/plugin files |
<leader>fs |
Search project content (live grep) |
Ensures essential development tools are automatically installed:
| Tool | Purpose |
|---|---|
| stylua | Lua formatter |
| prettier | JavaScript/TypeScript formatter |
| shfmt | Shell script formatter |
| markdownlint | Markdown linting |
Automatically configures installed LSP servers:
- LuaSnip - Snippet engine
- friendly-snippets - VS Code-style snippet collection
Snippets are automatically loaded and available for all supported file types.
Lualine.nvim with:
- Mode indicator
- File type with icon
- Git branch and status
- File location (line/column)
- Emoji indicator for personality
markdown-preview.nvim - Web-based live preview
- Toggle with
<leader>v(single keypress, like VS Code) - Live updates as you edit
- Full CSS/HTML rendering (not just terminal text)
- Opens in your default browser
- Node.js (v16+ recommended)
- Open a
.mdfile in Neovim - Press
<leader>v - Browser opens with live preview
- Edit your Markdown - preview updates automatically
- Press
<leader>vagain to close
- Neovim v0.11 or higher
- Git
- Node.js & npm (for Markdown preview and TypeScript)
- A Nerd Font (for icons)
git clone h### Step 1: Clone the Repository
```bash
# Linux / macOS
git clone https://github.com/kencal20/nvim_lazy_setup.git ~/.config/nvim
# Windows (PowerShell or CMD)
git clone https://github.com/kencal20/nvim_lazy_setup.git %LOCALAPPDATA%\nvimttps://github.com/kencal20/nvim_lazy_setup.git ~/.config/nvim
Launch Nvim(in terminal)
nvim| Plugin | Repository |
|---|---|
| LazyVim | github.com/LazyVim/LazyVim |
| Lazy.nvim | github.com/folke/lazy.nvim |
| nvim-tree | github.com/nvim-tree/nvim-tree.lua |
| Telescope | github.com/nvim-telescope/telescope.nvim |
| Treesitter | github.com/nvim-treesitter/nvim-treesitter |
| Mason | github.com/williamboman/mason.nvim |
| markdown-preview | github.com/iamcco/markdown-preview.nvim |
| LuaSnip | github.com/L3MON4D3/LuaSnip |
| Lualine | github.com/nvim-lualine/lualine.nvim |

