Skip to content

About

A minimal, fast Neovim config built for developers - featuring LSP, fuzzy finding, terminal integration, and a clean workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Quicksilver

A minimal, fast Neovim configuration built for developers

Neovim

Features

  • 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

Keybindings

General

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

Terminal

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)

Telescope

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

VSCode Style (macOS Cmd)

Key Action
<D>p Find files (Cmd+P)
<D-S>p Commands picker (Cmd+Shift+P)

File Explorer

Key Action
<leader>e Open Oil file explorer

Installation

Homebrew

brew tap GOI17/quicksilver
brew install GOI17/quicksilver/quicksilver
quicksilver --version
quicksilver

Use the fully qualified formula name to distinguish this Neovim configuration from the unrelated Quicksilver macOS application in Homebrew. Git, Neovim, and ripgrep are installed as dependencies. Plugins install on the first launch; run :Mason inside Quicksilver to install language servers.

brew upgrade GOI17/quicksilver/quicksilver
brew uninstall GOI17/quicksilver/quicksilver

Homebrew loads the bundled configuration directly. Your shell configuration, existing ~/.config/quicksilver, and WezTerm configuration are not modified. If you previously ran setup.sh, remove its alias quicksilver=... line from ~/.zshrc and run unalias quicksilver in the current shell so the Homebrew executable is used. Plugin and user data are retained when uninstalling.

See Homebrew distribution for packaging and release steps.

From source

# Clone the repository
git clone https://github.com/GOI17/quicksilver.git ~/Documents/workspace/quicksilver

# Run setup
cd ~/Documents/workspace/quicksilver
./setup.sh
source ~/.zshrc

# Start Neovim
quicksilver

# Install language servers
:Mason

Requirements

  • Neovim 0.11+
  • Git
  • ripgrep (for live grep)
  • Optional: node, python, rust, go for LSP support

Plugins

License

MIT License - See LICENSE for details.

Testing

Distribution tests run without downloading plugins or changing user configuration:

python3 -m unittest discover -s tests -p 'distribution_spec.py' -v

This project uses busted for testing Neovim Lua code.

Run Tests

# From within Neovim
:PlenaryBustedDirectory tests/ {minimal_init = 'tests/minimal_init.lua'}

# Or using busted directly
busted tests/

Test Structure

  • 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

Adding Tests

  1. Create a new file in tests/ with _spec.lua suffix
  2. 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

About

A minimal, fast Neovim config built for developers - featuring LSP, fuzzy finding, terminal integration, and a clean workflow

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages