Modular, minimalist-first Neovim configuration built for fast, minimalist C/C++ development.
- Minimalist UI – a clean, distraction-free terminal interface
- Fast startup – powered by lazy-loaded modular plugins
- C/C++-focused – tailored snippets, LSP support, and fuzzy file finding
- Insert-ready terminal splits – open horizontal or vertical terminals in insert mode
- Readable keymaps – consistent
(SPC key key)leader-based shortcuts - Beautiful colorscheme – Tokyo Night with centered dashboard branding
cc-neovim/
├── assets/ # Custom images (e.g., for README or dashboard)
├── snippets/ # LuaSnip-based snippets for C and C++
├── lua/
│ ├── core/ # Core config (options, keymaps, lazy.nvim, etc.)
│ ├── plugins/ # Individual plugin setups
│ └── colorscheme/ # Color scheme configuration
├── init.lua # Entry point, loads core and plugins
├── lazy-lock.json # Plugin lock file (optional in version control)
├── LICENSE # MIT License
├── README.md # This file
CC-Neovim requires only a few system packages to provide full IDE-like functionality in a minimalist environment.
Core Requirements
- Neovim 0.9+ – main editor
- git – for plugin management
- unzip – required for certain plugin installs
Development Tools
- clangd – C/C++ language server
- cmake – recommended for C++ project builds
- gdb – debugger integration
Search Utilities
- ripgrep (rg) – fast project-wide search
- fd – file finder used by Telescope and other pickers
Build Helpers
- make – speeds up build tasks
Optional (but Recommended)
- lua-language-server – improves Neovim’s built-in Lua LSP, making editing
init.luaand config modules much smoother- glow - markdown preview, no GUI required
sudo dnf install neovim git unzip glow clang-tools-extra cmake gdb make ripgrep fd-findsudo apt install neovim git unzip clangd cmake gdb make ripgrep fd-find lua-language-serverSome distributions ship outdated or broken versions of lua-language-server.
If the package from your package manager doesn’t work, you can build it manually:
Follow these commands in order:
git clone https://github.com/LuaLS/lua-language-server.git ~/.config/lua-language-server
cd ~/.config/lua-language-server
git submodule update --init --recursive
export PATH="$HOME/.config/lua-language-server/bin:$PATH"
You can make this change permanent by adding that line to your ~/.bashrc or ~/.zshrc.
Neovim loads configuration from ~/.config/nvim by default.
If you already have a config there, you should back it up first before cloning or creating a symlink.
mv ~/.config/nvim ~/.config/nvim.backup.$(date +%Y%m%d)Clone cc-neovim anywhere, and symlink the path to the cc-neovim repo. (do not just copy and paste, you need to type your own path.)
git clone https://github.com/zimmerman-dev/cc-neovim.gitThen:
ln -s /path/to/cc-neovim ~/.config/nvimAlternatively, clone straight into the Neovim config directory:
git clone https://github.com/zimmerman-dev/cc-neovim.git ~/.config/nvimThen launch Neovim:
nvimLazy.nvim will install your plugins automatically on first launch.
After cloning:
- For personal use (recommended):
Remove Git tracking so you can freely tweak the config without Git warnings:
rm -rf ~/.config/nvim/.git
- For contributing to CC‑Neovim:
Fork the repository on GitHub and clone your fork. This keeps Git tracking intact so you can push changes and submit PRs upstream.
| Keybinding | Mode(s) | Description |
|---|---|---|
SPC f s |
Normal | Save file |
SPC q q |
Normal | Quit Neovim |
SPC f f |
Normal | Fuzzy find files (Telescope) |
SPC t t |
Normal | Open horizontal terminal |
SPC t v |
Normal | Open vertical terminal |
<Esc> |
Terminal | Exit terminal mode |
Full list in cc-neovim/docs, but you can customize yourself in lua/core/keymaps.lua
You’ll find LuaSnip-powered C/C++ snippets under:
snippets/c/init.lua
snippets/cpp/init.lua
CC-Neovim was built with inspiration from the Neovim and Doom Emacs ecosystems. Special thanks to the developers behind:
- lazy.nvim for fast plugin management
- nvim-cmp for completion
- LuaSnip for custom snippet support
- tokyonight.nvim for the beautiful colorscheme
- dashboard-nvim for the clean start screen
- And the wider Neovim community for tools, documentation, and a hacker's spirit
License This project is licensed under the MIT License.
cc-neovim is crafted for terminal-first C++ development — minimal, modular, and yours to fork.
