🛠️ Installation
FtVim uses a starter template model. You clone the starter repository which then loads FtVim as a plugin. This keeps your configuration separate from FtVim's core, making updates easy.
⚡ Automatic Installation (recommended)
One command installs Neovim, ripgrep, JetBrainsMono Nerd Font, the 42 tools (norminette, c_formatter_42 and compiledb) and the starter config. Everything goes to your home directory, so no root is needed: it works on 42 campus machines.
curl -fsSL https://raw.githubusercontent.com/FtVim/FtVim/main/scripts/install.sh | bash
The installer:
- Skips anything that is already installed, so you can run it again safely
- Moves an existing
~/.config/nvimto~/.config/nvim.bak.<date>before installing the starter - Adds
~/.local/binto yourPATHin~/.zshrc/~/.bashrcif needed
Options
Pass options after bash -s --:
curl -fsSL https://raw.githubusercontent.com/FtVim/FtVim/main/scripts/install.sh | bash -s -- --no-font
| Option | Description |
|---|---|
--data-dir DIR | Keep plugins and caches in DIR (see below) |
--prefix DIR | Where to install binaries (default: ~/.local) |
--no-font | Don't install the Nerd Font |
--no-42 | Don't install norminette, c_formatter_42 and compiledb |
--no-starter | Don't install the starter config |
Short on home quota? Use your sgoinfre
Plugins, language servers and caches can take a few hundred MB. On campus machines with a small home quota, keep them in your sgoinfre:
curl -fsSL https://raw.githubusercontent.com/FtVim/FtVim/main/scripts/install.sh | bash -s -- --data-dir /sgoinfre/$USER/ftvim
~/.local/share/nvim and ~/.cache/nvim become links to that directory (existing data is moved there).
Set your 42 login so the header shows your name. Add this to your ~/.zshrc:
export USER42=yourlogin
export MAIL42=yourlogin@student.42barcelona.com
Manual Installation
1. Backup Your Current Configuration
# Backup existing configuration (if any)
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak
2. Clone the Starter Template
git clone https://github.com/FtVim/starter ~/.config/nvim
3. Start Neovim
nvim
On first launch, lazy.nvim will automatically install all plugins. This may take a minute.
Parallel Installation
Want to try FtVim without replacing your current configuration? Use NVIM_APPNAME:
# Clone to a separate directory
git clone https://github.com/FtVim/starter ~/.config/ftvim
# Run with NVIM_APPNAME
NVIM_APPNAME=ftvim nvim
This keeps FtVim completely isolated from your main Neovim configuration: it uses ~/.config/ftvim, ~/.local/share/ftvim, ~/.local/state/ftvim and ~/.cache/ftvim.
You can create an alias for convenience:
alias ftvim='NVIM_APPNAME=ftvim nvim'
Post-Installation
After installation, you may want to:
- Check your setup - Run
:checkhealth ftvim(or<leader>FH) to see what is missing on your machine - Enable extras - Run
:FtVimExtras(or<leader>Fx) to enable optional features like the 42 tools or Copilot - Install language servers - Open Neovim and run
:Masonto install LSP servers for your languages - Customize - See Configuration to personalize FtVim
Updating
To update FtVim and all plugins:
:Lazy update
Uninstalling
To completely remove FtVim:
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim
If you used --data-dir, also remove that directory.