Welcome to FoxVim! Whether you just cloned the repository, ran nvim for the very first time, or are looking to ensure all external tools are properly installed, this guide covers everything you need to know.
FoxVim includes idempotent setup scripts for both Windows and Unix-like environments. These scripts check for missing CLI dependencies and install them automatically. They are safe to run at any time—if a tool is already installed, the script simply skips it.
Open PowerShell in your %LOCALAPPDATA%\nvim directory and run:
powershell -ExecutionPolicy Bypass -File .\scripts\dependencies\install.ps1If Scoop is not installed, install.ps1 automatically installs Scoop for your user account, adds the main and extras buckets, and installs all required CLI tools.
Open a terminal in ~/.config/nvim (or your Windows config directory in Git Bash) and run:
chmod +x config/scripts/dependencies/install.sh
./config/scripts/dependencies/install.shinstall.sh detects your operating system and package manager (apt, dnf, pacman, brew, or scoop via Git Bash) and installs the required packages automatically.
These scripts configure terminal emulator shortcuts for FoxVim; they do not configure Bash, Fish, or your shell profile.
| Script | Purpose |
|---|---|
config/scripts/setup-kitty.sh / config/scripts/unsetup-kitty.sh |
Enable or undo Ctrl+Shift+Enter, Ctrl+Shift+P/A/Q/H/L and Ctrl+Shift+1..9 passthrough in Kitty |
config/scripts/setup-qutebrowser.sh / config/scripts/unsetup-qutebrowser.sh |
Apply or undo FoxVim browser shortcuts and Google defaults on Linux |
config/scripts/setup-bash.sh / config/scripts/unsetup-bash.sh |
Configure or undo shortcuts across supported terminals using Bash |
config/scripts/setup-powershell.ps1 / config/scripts/unsetup-powershell.ps1 |
Windows Terminal shortcuts and PSReadLine key handlers |
For Kitty shortcuts, run bash config/scripts/setup-kitty.sh. Dependency installers live separately in config/scripts/dependencies/. The additional PowerShell configurator for multiple terminal emulators is preserved in config/scripts/extra/setup-terminals.ps1. See the scripts guide for the layout.
Don't worry! You can run Neovim immediately.
When you launch nvim for the first time:
lazy.nvimauto-bootstraps: All Neovim plugins will automatically download and install.- Mason auto-installs LSPs: Language servers, formatters, and debug adapters configured in FoxVim will be managed in the background.
If you skip running install.ps1 or install.sh, FoxVim handles missing external CLIs gracefully:
| Missing CLI | Affected Feature | Graceful Fallback Behavior |
|---|---|---|
ripgrep (rg) |
Accelerates Project Search (<C-f>); Telescope grep |
Project Search falls back to its built-in Lua scanner. Telescope grep requires rg. |
fd / fdfind |
Fast file finding (<C-/>) |
Telescope falls back to native Neovim file scanner. |
gcc / MinGW |
Treesitter C compilation | Pre-compiled parsers load normally. Custom parser compilation notifies if a compiler is missing. |
chafa |
Image viewer popup (:ImageViewer) |
Displays a fallback warning modal prompting you to install chafa or open via OS (<C-S-Enter>). |
node / npm |
JS/TS LSP, Prettier, HTML/CSS | Mason servers requiring Node.js wait until Node is installed on your PATH. |
bun |
Bun debug adapter & profiles | Bun launch profiles notify if bun binary is not found. |
go |
Go LSP (gopls) & Delve |
Go features activate automatically once Go is present. |
rustc / cargo / rustfmt |
Rust LSP and formatting | The Rust bundle needs the Rust toolchain; install it with rustup before selecting the bundle. |
dotnet |
C# LSP & Nuget manager | Nuget manager (:NugetManager) notifies if dotnet CLI is missing. |
💡 Tip: You can run
install.ps1orinstall.shat any time after using Neovim to instantly fill in any missing dependencies!
FoxVim provides several built-in commands to inspect runtime dependencies from within Neovim:
:checkhealth— Standard Neovim system and plugin health report.:FoxHealthCheck— FoxVim's complete CLI report, including Tree-sitter, StyLua, and Luacheck.:Mason— Opens the Mason UI to view installed LSP servers, formatters, and debug adapters.:Lazy— Opens the Lazy plugin manager to verify plugin status and updates.:NvimWiki— Opens this interactive Wiki inside the editor.
For manual installation or custom package managers, here is the complete tool checklist:
| Tool / CLI | Purpose in FoxVim | Windows (Scoop) | Linux / WSL Package |
|---|---|---|---|
| Neovim (v0.12.4 / >= 0.10) | Core editor runtime (Current setup: NVIM v0.12.4) |
scoop install neovim |
neovim |
| Git | Mason, Neogit, Lazy.nvim, Git Control Center | scoop install git |
git |
ripgrep (rg) |
Fast project search (<C-f>) and Telescope grep |
scoop install ripgrep |
ripgrep |
| fd | Fast file finder (<C-/>) |
scoop install fd |
fd-find (or fd) |
| chafa | Terminal pixel-art image previewer (:ImageViewer) |
scoop install chafa |
chafa |
| GCC / MinGW | Treesitter parser compilation | scoop install gcc |
gcc / build-essential |
Tree-sitter CLI (tree-sitter) |
Builds parsers required by nvim-treesitter's main branch |
scoop install tree-sitter |
tree-sitter-cli (Arch/Debian) |
StyLua (stylua) |
Formats FoxVim's Lua configuration | scoop install stylua |
stylua |
Luacheck (luacheck) |
Lints FoxVim's Lua configuration | scoop install luacheck |
luacheck |
| Node.js & npm | JS/TS LSP, Prettier, JSON/HTML LSPs | scoop install nodejs-lts |
nodejs npm |
| Bun (optional) | Bun launch profiles & fast JS runtime | scoop install bun |
curl -fsSL https://bun.sh/install | bash |
| Go (optional) | Go LSP (gopls), gofumpt, Delve debugger |
scoop install go |
golang |
| Rust (optional) | rust-analyzer, rustfmt, Cargo | scoop install rustup then rustup default stable |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
| .NET SDK (optional) | C# LSP, Nuget manager (:NugetManager), netcoredbg |
scoop install dotnet-sdk |
dotnet-sdk-8.0 |
| WSL (optional) | WSL file explorer (:TelescopeFileBrowserWSL), auto-WSL terminal |
wsl --install |
— |
FoxVim writes per-project configuration files under .foxnvim/ at the root of your project directory only when you use specific features:
| File | Feature / Module | Description |
|---|---|---|
.foxnvim/tasks.json |
Task Runner | Project build tasks, custom commands, and chains. |
.foxnvim/launch.json |
Launch Profiles | Debugger and runner configurations (<C-S-q>). |
.foxnvim/breakpoints.json |
Breakpoints | Persistent DAP breakpoints across sessions. |
.foxnvim/types.json |
Type Injector | Custom Lua/TS type definitions and schemas. |
📁 Alternative Directory Names: If
.foxlocal/or.nvimfox/already exist in your project root, FoxVim respects them as machine-local overrides. No files are created if a feature is unused.
FoxVim defaults to JetBrainsMono Nerd Font (14pt).
- Adjust font size dynamically in GUI builds (Neovide / Windows GUI) using
<C-+>,<C-->, and<C-0>. - Font size preferences are saved automatically to
font_config.jsonin your globalnvim-datadirectory (stdpath("data")). - A Nerd Font (v3.0+) is strongly recommended for icons in the statusline, file explorer, dashboard, and DAP signs.