A personalized, high-performance Neovim configuration built for efficiency in C++, Rust, and Go development. This setup utilizes lazy.nvim for package management and includes a curated suite of plugins for a modern IDE experience.
Home Page:
Fuzzy Finder:
Workspace View: 
If you are on a brand new machine, use the automated setup script to install Neovim, system dependencies (ripgrep, build tools), and synced plugins in one go.
git clone git@github.com:yi-json/nvim.git ~/.config/nvim
cd ~/.config/nvim
chmod +x setup.sh
./setup.sh
nvimNote: The script does not include the Nerd Font - it needs to be downloaded manually
If you prefer a manual setup, ensure the following are installed:
- Neovim (v0.9.0+):
pacman -S neovim(arch),brew install neovim(macOS), orapt install neovim(ubuntu/debian). - Ripgrep: Essential for Telescope fuzzy finding.
- Build Tools:
gccorclangfor Treesitter parsers. - Nerd Font: Required for icons. JetBrainsMono Nerd Font is recommended.
This config follows a modular structure where each plugin has its own dedicated configuration file.
| File | Plugin / Feature | Description |
|---|---|---|
alpha.lua |
Dashboard | The startup screen with the "NEOVIM" header, shortcuts, and philosophical quotes. |
comments.lua |
Comment.nvim | Smart commenting utility. Toggle comments with gcc (line) or gc (selection). |
completion.lua |
nvim-cmp | Autocompletion engine. Provides suggestions for code, paths, and snippets as you type. |
formatting.lua |
Conform / None-ls | Handles auto-formatting (e.g., clang-format, rustfmt) to keep code consistent. |
lsp.lua |
LSP Config | Connects to Language Servers (clangd, rust_analyzer, gopls) for Go-to-Definition and Errors. |
neotree.lua |
Neo-tree | A file explorer tree for browsing project directories visually. |
discord.lua |
Discord Presence | Discord Rich Presence integration to show what you're working on in real-time. |
telescope.lua |
Telescope | Fuzzy finder. Quickly find files (<space>f), text (<space>t), or buffers. |
theme.lua |
Colorscheme | Controls the visual style and syntax highlighting colors. |
toggleterm.lua |
ToggleTerm | Floating/Docked terminal. Toggle it with Ctrl+\. |
treesitter.lua |
Treesitter | Advanced syntax highlighting and parsing for better code readability. |
vimbegood.lua |
Vim Be Good | A game to practice Vim motions. Run :VimBeGood to start training. |
which-key.lua |
Which-Key | Popup menu that shows available keybindings if you pause while typing. |
autopairs.lua |
Autopairs | Automatic closing of parentheses, braces, and quotes. |
Based on standard configuration patterns.
<Space>: Leader Key (used for most custom commands)Ctrl + \: Toggle Terminalgcc: Comment/Uncomment current line:VimBeGood: Start the Vim training game
<Space> f: Find File (fuzzy search)<Space> t: Find Text (live grep)<Space> r: Recent Files<Space> c: Edit Config
<Space> e: Toggle File Explorera: Add new file (inside explorer)d: Delete file (inside explorer)r: Rename file (inside explorer)
gd: Go to DefinitionK: Hover Documentation<Space> ca: Code Action (Fix errors/refactor)
~/.config/nvim
├── init.lua # Entry point
├── lazy-lock.json # Plugin version lockfile (DO NOT DELETE)
└── lua
├── config
│ ├── keymaps.lua # Custom keybindings
│ ├── lazy.lua # Plugin manager setup
│ └── options.lua # Vim options (line numbers, tabs, etc.)
└── plugins # Individual plugin configurations