
A minimal, fast Neovim configuration built for developers
- Fast & Minimal - Lightweight config with only essential plugins
- LSP Support - Built-in language server support via mason.nvim + nvim-lspconfig
- Fuzzy Finding - Telescope integration for fast file search
- Terminal Integration - betterTerm with opencode CLI support
- File Explorer - Oil.nvim for modern file navigation
- Autocomplete - nvim-cmp with LSP snippets
- Inline Diagnostics - lspsaga for VSCode-like error display
- Beautiful Theme - Kanagawa color scheme
| Key |
Action |
Esc |
Clear search highlight |
qw |
Exit insert/visual mode |
<C-h/j/k/l> |
Navigate windows |
<leader>w |
Save file |
<leader>q |
Quit |
<C-w>z |
Maximize/restore pane |
| Key |
Action |
<leader>tn |
Spawn new terminal |
<leader>tl |
List all terminals |
<leader>to |
Toggle opencode terminal (vertical) |
<leader>tv |
Toggle shell vertical |
<leader>th |
Toggle shell horizontal |
<leader>tt |
Toggle shell in new tab |
<leader>tg |
Toggle LazyGit |
<space>gg |
Open LazyGit (alternative) |
<C-t> |
Toggle betterterm visibility |
<C-t>n |
New terminal tab (betterterm) |
<C-u> |
Cycle terminals right (in terminal) |
<C-y> |
Cycle terminals left (in terminal) |
<C-d> |
Close terminal (in terminal) |
| Key |
Action |
ff |
Find files |
<leader>fb |
Buffers |
<leader>fg |
Live grep |
<leader>fh |
Help tags |
<leader>fr |
Recent files |
<leader>rc |
Commands picker |
<C-w>F |
Find & open in vertical split |
<C-w>s |
Find & open in horizontal split |
| Key |
Action |
<D>p |
Find files (Cmd+P) |
<D-S>p |
Commands picker (Cmd+Shift+P) |
| Key |
Action |
<leader>e |
Open Oil file explorer |
# Clone the repository
git clone https://github.com/GOI17/quicksilver.git ~/Documents/workspace/quicksilver
# Run setup
cd ~/Documents/workspace/quicksilver
./setup.sh
# Start Neovim
quicksilver
# Install language servers
:Mason
- Neovim 0.11+
- Git
- ripgrep (for live grep)
- Optional: node, python, rust, go for LSP support
MIT License - See LICENSE for details.
This project uses busted for testing Neovim Lua code.
# From within Neovim
:PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal_init.lua'}
# Or using busted directly
busted tests/
tests/ - Test files following *_spec.lua naming convention
tests/minimal_init.lua - Minimal Neovim init for headless testing
tests/init.lua - Test helpers and utilities
- Create a new file in
tests/ with _spec.lua suffix
- Follow the pattern of existing tests:
describe("module_name", function()
before_each(function()
package.loaded["quicksilver.module_name"] = nil
end)
it("should do something", function()
require("quicksilver.module_name")
-- assertions here
end)
end)
Made with ❤️ by GOI17