Skip to main content

🛠️ 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.

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/nvim to ~/.config/nvim.bak.<date> before installing the starter
  • Adds ~/.local/bin to your PATH in ~/.zshrc / ~/.bashrc if needed

Options​

Pass options after bash -s --:

curl -fsSL https://raw.githubusercontent.com/FtVim/FtVim/main/scripts/install.sh | bash -s -- --no-font
OptionDescription
--data-dir DIRKeep plugins and caches in DIR (see below)
--prefix DIRWhere to install binaries (default: ~/.local)
--no-fontDon't install the Nerd Font
--no-42Don't install norminette, c_formatter_42 and compiledb
--no-starterDon'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).

tip

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.

tip

You can create an alias for convenience:

alias ftvim='NVIM_APPNAME=ftvim nvim'

Post-Installation​

After installation, you may want to:

  1. Check your setup - Run :checkhealth ftvim (or <leader>FH) to see what is missing on your machine
  2. Enable extras - Run :FtVimExtras (or <leader>Fx) to enable optional features like the 42 tools or Copilot
  3. Install language servers - Open Neovim and run :Mason to install LSP servers for your languages
  4. 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.