Battle-tested vim/neovim setup. One command. Any machine.
A cross-platform installer for a production-grade vim and neovim configuration — session management, fuzzy finding, LSP-ready, GitHub Copilot, and full vim/nvim key-binding parity. Built for developers who live in the terminal.
bash <(curl -fsSL https://raw.githubusercontent.com/hyperdrift-io/nvim-config/main/install.sh)
What you get
Neovim
| Feature | Plugin |
|---|---|
| Session picker with favourites, rename, delete | persisted.nvim + custom telescope picker |
| Fuzzy file/buffer/grep search | telescope.nvim + fzf.vim |
| Completion + snippets | nvim-cmp + LuaSnip |
| GitHub Copilot | copilot.vim |
| Git UI | neogit + diffview |
| Status bar | vim-airline |
| Undo history tree | vim-mundo |
| Auto-pairs, surround, easy-align | tpope suite |
Vim
| Feature | Mechanism |
|---|---|
| Session management | Built-in vimscript (SessionOpen, SessionSave, SessionDelete) |
| Plugin management | vim-plug |
| Completion | nvim-cmp equivalent via neocomplete |
| Fuzzy finding | fzf.vim |
Key bindings (identical in vim and nvim)
| Key | Action |
|---|---|
| \so | Open session picker |
| \ss | Save current session |
| \sd | Delete current session |
| \sq | Save session and quit |
| \f | Fuzzy file search |
| \g | Live grep |
| \b | Buffer explorer |
| jj | Exit insert mode |
Install options
# Neovim only (default)
./install.sh
# Vim only
./install.sh --vim
# Both vim and neovim
./install.sh --both
# Server/remote mode — skips GUI plugins, Copilot, fonts
./install.sh --remote
# Non-interactive (CI, scripted setup)
./install.sh --yes
# Preview only — nothing is written
./install.sh --dry-run
Supported platforms
| OS | Vim | Neovim | |---|---|---| | macOS (Homebrew) | ✓ | ✓ | | Ubuntu / Debian | ✓ | ✓ (snap if available) | | Fedora / RHEL / Rocky | ✓ | ✓ | | Alpine Linux | ✓ | ✓ | | Arch / Manjaro | ✓ | ✓ |
Session management
Opening nvim without arguments launches a telescope session picker automatically:
<CR>— load sessions— save / update selected sessionS— save as new namer— rename sessiond— delete session (with confirmation)f— toggle favourite (★ pinned to top)R— refresh list
Sessions are sorted: favourites first, then most recently modified.
Remote / sysadmin use
The --remote flag is optimised for bastion hosts and remote servers:
- Skips Copilot (requires internet + auth)
- Skips GUI-dependent plugins (Powerline fonts)
- Minimal plugin set — fast startup
# One-liner for a fresh server
bash <(curl -fsSL https://raw.githubusercontent.com/hyperdrift-io/nvim-config/main/install.sh) --remote --yes
dotfiles integration
If you use yannvr/dotfiles, nvim-config is included as a submodule and wired into the main installer automatically.
git clone --recurse-submodules https://github.com/yannvr/dotfiles ~/dotfiles
cd ~/dotfiles && ./install.sh
Structure
nvim-config/
├── install.sh # cross-platform installer
├── test/
│ ├── test-install-macos.sh
│ └── test-install-linux.sh
├── vim/ # vim config files (symlinked from dotfiles)
│ ├── .vimrc
│ ├── .vimrc.conf.base
│ ├── .vimrc.conf
│ ├── .vimrc.maps
│ ├── .vimrc.plugin
│ └── .vimrc.filetypes
└── nvim/ # neovim config (symlinked from dotfiles)
├── init.lua
└── lua/
├── plugins/init.lua
└── sessions/picker.lua
Requirements
git≥ 2.20curl(for vim-plug bootstrap)- macOS: Homebrew
- Linux:
apt,dnf,apk, orpacman
Part of the Hyperdrift toolchain. Installer built with typerx — Python scripting on steroids.