A minimal Neovim configuration built with native vim.pack and mini.nvim.
scvim provides a fast, self-contained development environment. It replaces complex plugin frameworks with native Neovim features and the mini.nvim library.
You can run scvim side by side with your existing Neovim configuration using NVIM_APPNAME.
./init.lua: Main entry point. Loads core modules and color scheme../lua/options.lua: Editor options and buffer settings../lua/keymaps.lua: Key mappings and leader bindings../lua/commands.lua: Custom user commands for package and language management../lua/languages.lua: Single source of truth for supported languages and installable tools../lua/autocmds.lua: Event handlers and filetype rules../lua/pack.lua: Plugin declarations and module configurations../lua/lsp.lua: LSP server setups and diagnostics../lua/treesitter.lua: Syntax parser definitions and highlight rules../CHEATSHEET.md: Complete keymap reference../LANGUAGES.md: Language server and parser setup guide../CHANGELOG.md: Record of configuration changes.
Install these tools before you start:
- Neovim (version 0.12 or newer).
- Git (for package downloads).
- C Compiler (
gcc,clang, orzig) and tree-sitter-cli (for syntax parsers). - Nerd Font (optional, for icons in statusline, pickers, and Markdown).
This option keeps your current ~/.config/nvim untouched. Neovim isolates all configuration, data, cache, and state files under scvim.
- Symlink this repository to
~/.config/scvim:
ln -s /path/to/scvim ~/.config/scvim- Add this alias to your shell configuration (
~/.zshrcor~/.bashrc):
alias scvim='NVIM_APPNAME=scvim nvim'- Reload your shell configuration:
source ~/.zshrc # or source ~/.bashrc- Launch
scvim:
scvimThis option sets scvim as your default Neovim setup.
- Move your existing configuration to a backup directory:
mv ~/.config/nvim ~/.config/nvim.backup- Symlink this repository to
~/.config/nvim:
ln -s /path/to/scvim ~/.config/nvim- Launch Neovim:
nvimOpen Neovim after you install scvim, then run:
:SCInstallAllThis command installs the configured Mason tools and Tree-sitter parsers. Use
:SCMasonInstallAll for Mason tools only. Use :SCTreesitterInstallAll for
Tree-sitter parsers only. The commands read their lists from
lua/languages.lua.
Tree-sitter also requests the configured parsers when Neovim starts. The explicit command is useful on a new machine or after you add a parser.
Use these custom commands in Neovim:
| Command | Description |
|---|---|
:SCPackAdd <url> |
Add a plugin to the active session. |
:SCPackUpdate |
Update all installed plugins. |
:SCPackUpdate <name> |
Update a specific plugin. |
:SCPackClean |
Remove unused and inactive plugins from disk. |
:SCPackDel <name> |
Delete a specific plugin from disk. |
Add ! to SCPackAdd, SCPackUpdate, or SCPackDel to skip confirmation or
force the operation. Add ! to SCPackClean to skip its confirmation prompt.
For a fresh installation, use :SCInstallAll to install all configured
Mason-managed tools and Tree-sitter parsers. Use :SCMasonInstallAll or
:SCTreesitterInstallAll when only one category is needed. These commands
read their lists from lua/languages.lua.
Access documentation directly in Neovim using <leader>h:
| Keymap | File | Description |
|---|---|---|
<leader>hc |
CHEATSHEET.md | Complete keymap and shortcut reference. |
<leader>hr |
README.md | Project guide and installation instructions. |
<leader>hl |
CHANGELOG.md | Complete version release history. |
<leader>hk |
LANGUAGES.md | 16-language LSP and parser matrix. |
scvim builds upon patterns, workflows, and ideas from the Neovim community:
- Sin-cy/nvim-scratch: Initial architectural layout and native
vim.pack+mini.nvimfoundation. - Sin-cy/dotfiles: Keymap ergonomics, editor behaviors, and dynamic language workflows.
- SylvanFranklin/.config: Package management concepts (
:SCPackClean) and CSV table integration ideas. - radleylewis/nvim (and nvim-lite): Split navigation and resizing ergonomics, patience diffing, diagnostic sign styling, import organization workflow, cursor position restoration, clean terminal management, and runtime workspace indexing.
- echasnovski/mini.nvim: Comprehensive modular library powering core editing, diffing, and navigation.
This project is licensed under the MIT License.