neovim config

July 24, 2026 · View on GitHub

English | 简体中文 | 日本語 | Français | 한국어

Une configuration Neovim personnelle et moderne, écrite en Lua et gérée avec lazy.nvim. LSP natif, Treesitter, Telescope et un thème Catppuccin — tout est inclus, optimisé pour le développement web et Python.

screenshot

Fonctionnalités

  • Chargement paresseux — plugins gérés par lazy.nvim avec un lazy-lock.json versionné pour des installations reproductibles
  • 🧠 LSP natifnvim-lspconfig + mason.nvim, serveurs et outils installés automatiquement
  • Complétionblink.cmp, un moteur de complétion moderne et rapide
  • 🌳 Treesitter — coloration syntaxique et sélection incrémentale, ainsi que des objets texte basés sur Treesitter
  • 🔭 Telescope — recherche floue de fichiers, live grep, symboles LSP et todos
  • 🎨 Thème Catppuccin, barre de statut lualine, tableau de bord alpha, aides which-key et guides d'indentation
  • 🧹 Formatage et lint à la sauvegardeconform.nvim (prettier / stylua / isort / black) et nvim-lint (eslint_d / pylint)
  • 💾 Session automatique — restaure votre espace de travail par répertoire de projet
  • 🔧 Intégration Git via gitsigns et lazygit

Prérequis

  • Neovim 0.10 ou plus récent
  • git
  • Une Nerd Font (pour les icônes ; la configuration suppose qu'elle est définie dans votre terminal)
  • Un terminal true color (iTerm2, WezTerm, Kitty, etc.) — requis pour termguicolors
  • ripgrep (rg) — pour le live grep de Telescope
  • Node.js — requis par plusieurs serveurs LSP et formateurs (prettier, etc.)

Installation

git clone git@github.com:dofy/nvim.git ~/.config/nvim

Puis lancez Neovim :

nvim

Au premier démarrage, lazy.nvim s'amorce lui-même et installe automatiquement tous les plugins. Les serveurs LSP et les outils sont installés par Mason en arrière-plan.

  • Exécutez :Lazy pour installer / mettre à jour / nettoyer les plugins
  • Exécutez :Mason pour gérer les serveurs LSP, les formateurs et les linters
  • Appuyez sur <Space> (la touche leader) et patientez pour voir les raccourcis disponibles
  • Appuyez sur g? pour afficher l'écran des raccourcis

Structure

init.lua
├── lua/custom/core/
│   ├── options.lua     # réglages vim.opt
│   └── keymaps.lua     # raccourcis de base (leader = <Space>)
├── lua/custom/lazy.lua # amorçage lazy.nvim + import des plugins
└── lua/custom/plugins/
    ├── init.lua        # dépendances de base (plenary, vim-tmux-navigator)
    ├── lsp/
    │   ├── mason.lua       # Mason + mason-lspconfig + installateur d'outils
    │   └── lspconfig.lua   # nvim-lspconfig + raccourcis LspAttach
    └── *.lua           # un fichier par plugin

Pour ajouter un plugin, créez lua/custom/plugins/<name>.lua renvoyant une table de spec lazy.nvim — elle est importée automatiquement.

Plugins

CatégoriePlugins
Complétionblink.cmp
LSPnvim-lspconfig, mason.nvim, mason-lspconfig, mason-tool-installer
Syntaxenvim-treesitter, nvim-treesitter-textobjects
Fichiers et recherchenvim-tree, telescope.nvim
Formatage et lintconform.nvim, nvim-lint
Interfacecatppuccin, lualine, alpha, dressing, indent-blankline, which-key
Éditionautopairs, substitute.nvim, todo-comments, trouble.nvim
Gitgitsigns, lazygit
Session et diversauto-session, wakatime

Raccourcis

La touche leader est <Space>. Ceci est une référence rapide ; appuyez sur <leader> ou g et patientez pour que which-key affiche la liste complète.

Fenêtres et onglets

ToucheAction
<leader>sv / <leader>shDiviser verticalement / horizontalement
<leader>se / <leader>sxÉgaliser les divisions / fermer la division
<leader>to / <leader>txOuvrir / fermer un onglet
<leader>tn / <leader>tpOnglet suivant / précédent
<leader>tfOuvrir le buffer courant dans un nouvel onglet
<leader>nhEffacer la surbrillance de recherche
jk (insertion)Quitter le mode insertion

Recherche (Telescope) et explorateur

ToucheAction
<leader>ffTrouver des fichiers dans le répertoire courant
<leader>frFichiers récents
<leader>fsLive grep dans le répertoire courant
<leader>fcGrep de la chaîne sous le curseur
<leader>ftTrouver les todos
<leader>eeBasculer l'explorateur de fichiers
<leader>efBasculer l'explorateur sur le fichier courant
<leader>ec / <leader>erReplier / rafraîchir l'explorateur

LSP

ToucheAction
gd / gRDéfinitions / références
gD / gi / gtDéclaration / implémentations / définitions de type
KDocumentation au survol
<leader>caActions de code
<leader>rnRenommer le symbole
<leader>d / <leader>DDiagnostics de ligne / de fichier
[d / ]dDiagnostic précédent / suivant
<leader>rsRedémarrer le LSP

Édition

ToucheAction
s + mouvement / ss / SSubstituer avec mouvement / ligne / jusqu'à la fin de ligne
s (visual)Substituer la sélection
<leader>foFormater le fichier ou la plage
<leader>llDéclencher le lint
<leader>wr / <leader>wsRestaurer / sauvegarder la session

LSP et formatage

Serveurs LSP (installés automatiquement via mason-lspconfig) : ts_ls, denols, html, cssls, tailwindcss, svelte, lua_ls, graphql, emmet_ls, prismals, pyright.

Outils (installés automatiquement via mason-tool-installer) : prettier, stylua, isort, black, pylint, eslint_d.

Formatageconform.nvim, exécuté à la sauvegarde (manuel : <leader>fo) :

  • JS / TS / CSS / HTML / JSON / YAML / Markdown / GraphQL → prettier
  • Lua → stylua (indentation de 2 espaces)
  • Python → isort + black

Lintnvim-lint, déclenché à l'entrée / la sauvegarde / la sortie du mode insertion (manuel : <leader>ll) :

  • JS / TS / Svelte → eslint_d
  • Python → pylint

Licence

MIT