Vous maîtrisez les bases de Vim, modes, motions, substitution, et vous voulez en
faire un véritable environnement de travail. Ce guide va au-delà du couloir
certification pour couvrir ce qui rend Vim productif au quotidien : travailler
sur plusieurs fichiers côte à côte, automatiser les tâches répétitives avec les
macros, et étendre l'éditeur avec des plugins. À la fin, vous aurez un
.vimrc complet et un écosystème comparable à un IDE léger. Les commandes
et la configuration ont été rejouées sur Vim 9.1, celui de Debian 13.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Organiser plusieurs fichiers avec buffers, splits et onglets
- Enregistrer et rejouer des macros pour les tâches répétitives
- Utiliser la commande
:gpour appliquer une action à toutes les lignes correspondant à un motif - Installer des plugins avec vim-plug
- Configurer un
.vimrccomplet et maintenable - Exploiter 12 plugins essentiels qui transforment Vim en IDE terminal
Dans quel contexte ?
Section intitulée « Dans quel contexte ? »Les fonctionnalités de ce guide sont hors tronc certification (LFCS/RHCSA). Elles interviennent quand Vim devient votre éditeur principal : développement, écriture de scripts au long cours, édition comparée de fichiers de configuration, traitement d'un export CSV à reformater. Elles supposent un poste de travail personnel où vous pouvez configurer votre environnement, pas une session SSH jetable sur un serveur client.
| Situation | Fonctionnalité utile |
|---|---|
| Comparer deux versions d'un fichier de configuration | Splits verticaux (:vsp) |
| Reformater 100 lignes d'un CSV à l'identique | Macros (qa ... q puis 100@a) |
| Ajouter un préfixe à toutes les lignes contenant « debug » | Commande globale (:g/debug/normal I# ) |
| Naviguer dans un projet de 200 fichiers | Plugin fzf (:Files) |
| Commenter/décommenter un bloc de code | Plugin vim-commentary (gcc) |
| Voir les modifications Git dans la marge | Plugin vim-gitgutter |
Travailler avec plusieurs fichiers
Section intitulée « Travailler avec plusieurs fichiers »En tant que sysadmin ou développeur, vous éditez rarement un seul fichier. Vous devez souvent comparer deux configurations, consulter un fichier pendant que vous en modifiez un autre, ou naviguer rapidement entre plusieurs scripts. Vim gère ça avec trois mécanismes complémentaires : les buffers, les splits et les onglets.
Buffers : garder plusieurs fichiers en mémoire
Section intitulée « Buffers : garder plusieurs fichiers en mémoire »Quand vous ouvrez un fichier avec :e, Vim le charge dans un buffer (une
zone mémoire). Pensez aux buffers comme aux onglets cachés d'un
navigateur : les fichiers sont ouverts, mais vous n'en voyez qu'un à la fois.
| Commande | Ce qu'elle fait |
|---|---|
:e fichier | Ouvre un fichier dans un nouveau buffer |
:ls | Liste tous les buffers ouverts |
:b2 | Bascule vers le buffer n°2 |
:bn | Passe au buffer suivant |
:bp | Passe au buffer précédent |
:bd | Ferme le buffer courant (sans quitter Vim) |
Splits : afficher plusieurs fichiers côte à côte
Section intitulée « Splits : afficher plusieurs fichiers côte à côte »Les splits divisent votre écran pour afficher plusieurs fichiers simultanément. C'est comme avoir deux feuilles de papier ouvertes l'une à côté de l'autre sur votre bureau, chacune dans sa fenêtre.
| Commande | Ce qu'elle fait |
|---|---|
:vsp fichier | Split vertical (côte à côte) |
:sp fichier | Split horizontal (l'un au-dessus de l'autre) |
Pour naviguer entre les fenêtres, la combinaison est toujours la même :
Ctrl+w suivi de la direction.
| Raccourci | Navigation |
|---|---|
Ctrl+w h | Aller à la fenêtre de gauche |
Ctrl+w l | Aller à la fenêtre de droite |
Ctrl+w j | Aller à la fenêtre du bas |
Ctrl+w k | Aller à la fenêtre du haut |
Ctrl+w = | Égaliser la taille de toutes les fenêtres |
Ctrl+w c | Fermer la fenêtre courante |
Ctrl+w o | Garder uniquement la fenêtre courante |
Voici un exemple avec trois fichiers ouverts, un script Python, un fichier YAML et un script Bash, tous visibles en même temps :

Cette disposition est très pratique pour comparer deux fichiers de configuration ou éditer du code en consultant la documentation dans la fenêtre voisine.
Onglets : séparer des contextes de travail
Section intitulée « Onglets : séparer des contextes de travail »Les onglets regroupent des ensembles de splits. Si les splits sont les fenêtres de votre bureau, les onglets sont des bureaux virtuels. Utile pour séparer des contextes : un onglet pour le code, un pour les configurations, un pour les logs.
| Commande | Ce qu'elle fait |
|---|---|
:tabnew fichier | Ouvre un fichier dans un nouvel onglet |
gt | Passe à l'onglet suivant |
gT | Passe à l'onglet précédent |
:tabs | Liste tous les onglets ouverts |
:tabclose | Ferme l'onglet courant |
Automatiser avec les macros
Section intitulée « Automatiser avec les macros »Imaginons que vous ayez un fichier CSV de 100 lignes et que vous deviez reformater chaque ligne de la même manière, ajouter un préfixe, supprimer une colonne, modifier un séparateur. Le faire à la main prendrait des heures. Les macros de Vim permettent d'enregistrer une séquence d'actions et de la rejouer autant de fois que nécessaire.
Enregistrer et rejouer une macro
Section intitulée « Enregistrer et rejouer une macro »Une macro se stocke dans un registre (une mémoire identifiée par une lettre).
-
Démarrer l'enregistrement : appuyez sur
qsuivi d'une lettre pour choisir le registre. Par exemple,qaenregistre dans le registrea. Vous voyezrecording @as'afficher en bas de l'écran. -
Effectuer les actions : tout ce que vous tapez (déplacements, modifications, insertions) est enregistré. Travaillez sur une seule ligne comme modèle.
-
Arrêter l'enregistrement : appuyez sur
q. Le messagerecordingdisparaît. -
Rejouer la macro : tapez
@apour exécuter la macro du registrea. Tapez@@pour rejouer la dernière macro utilisée.
Appliquer une action sur un intervalle de lignes
Section intitulée « Appliquer une action sur un intervalle de lignes »La méthode la plus directe (sans macro) pour commenter les lignes 4 à 8 :
:4,8normal I#Cette commande dit à Vim : « sur les lignes 4 à 8, exécute la commande
normale I# » (insérer # en début de ligne). Le mot-clé normal
indique que les touches qui suivent doivent être interprétées comme en mode
normal. Pour obtenir # suivi d'une espace, tapez une espace après le # :
elle est invisible à l'écran, mais Vim l'insère, comme vérifié sur Vim 9.1.
Appliquer une action sur toutes les lignes correspondant à un motif
Section intitulée « Appliquer une action sur toutes les lignes correspondant à un motif »Vous voulez commenter toutes les lignes qui contiennent le mot debug :
:g/debug/normal I#La commande :g/pattern/ (pour global) sélectionne toutes les lignes
correspondant au motif, puis applique l'action qui suit. C'est
extrêmement puissant : vous pouvez par exemple supprimer toutes les lignes
vides avec :g/^$/d.
Répéter une macro N fois
Section intitulée « Répéter une macro N fois »Pour exécuter la macro a dix fois de suite :
10@aVous faites le travail une fois à la main, puis Vim le reproduit 10, 100 ou 1000 fois. Pour que les répétitions avancent, la macro doit se terminer par un déplacement vers la ligne suivante, sinon elles s'appliquent toutes à la même ligne.
Sauvegarder une macro dans .vimrc
Section intitulée « Sauvegarder une macro dans .vimrc »Les macros sont perdues quand vous fermez Vim. Pour en conserver une,
ajoutez-la à votre fichier .vimrc entre guillemets doubles :
let @a="I# \<Esc>j"Cette ligne pré-remplit le registre a avec la macro « insérer # en début de
ligne, revenir en mode normal, descendre d'une ligne ». Les guillemets doubles
sont indispensables : entre guillemets simples, Vim ne traduit pas
\<Esc>, et la macro insère littéralement le texte # \<Esc>j au lieu de
quitter le mode insertion, mesuré sur Vim 9.1.
Personnaliser Vim avec .vimrc
Section intitulée « Personnaliser Vim avec .vimrc »Le fichier ~/.vimrc est le cœur de votre configuration Vim. Il est lu à
chaque lancement. Chaque ligne correspond à une commande que vous pourriez
taper manuellement, mais qui sera appliquée automatiquement.
Pensez au .vimrc comme au .bashrc de votre shell : c'est ici que vous
définissez les réglages qui correspondent à votre façon de travailler.
Structure d'un .vimrc complet
Section intitulée « Structure d'un .vimrc complet »Voici un point de départ solide avec des explications pour chaque bloc. La
commande set accepte un commentaire en fin de ligne, introduit par " :
ce n'est pas le cas de toutes les commandes, comme le montre la touche
Leader plus bas.
" === Apparence ===set number " Numéros de ligne à gaucheset relativenumber " Distance par rapport à la ligne couranteset cursorline " Surligne la ligne du curseurset showmatch " Surligne brièvement la parenthèse correspondanteset laststatus=2 " Barre de statut toujours affichée
" === Indentation ===set tabstop=4 " Une tabulation vaut 4 espacesset shiftwidth=4 " L'indentation automatique décale de 4 espacesset expandtab " Tab insère des espaces (pas \t)set autoindent " Conserve l'indentation de la ligne précédenteset smartindent " Ajoute un niveau après { ou if
" === Recherche ===set incsearch " Résultats en temps réel pendant la saisieset hlsearch " Surligne toutes les occurrencesset ignorecase " Recherche insensible à la casseset smartcase " SAUF si vous tapez une majuscule
" === Confort ===set encoding=utf-8 " Encodage UTF-8set scrolloff=8 " 8 lignes visibles autour du curseurset wildmenu " Menu de complétion sur :e <Tab>set mouse=a " Souris active (clic, scroll, sélection)set clipboard=unnamedplus " Intégration presse-papier systèmePersistent undo
Section intitulée « Persistent undo »Par défaut, quand vous fermez un fichier et le rouvrez, l'historique d'annulation est perdu. Le persistent undo sauvegarde cet historique sur disque :
" === Persistent undo ===set undofileset undodir=~/.vim/undodirCréez le dossier une fois pour toutes. Vim ne le crée pas, et quand il manque, il n'écrit aucun fichier d'annulation, sans afficher le moindre message : l'historique est perdu à la fermeture comme si l'option était absente, ce qui rend la panne difficile à remarquer (mesuré sur Vim 9.1) :
mkdir -p ~/.vim/undodirLa touche Leader
Section intitulée « La touche Leader »La touche Leader est un préfixe que vous choisissez pour créer des raccourcis personnalisés qui ne gênent aucune commande Vim existante. Par convention, la touche Espace est idéale car facilement accessible et inutilisée en mode normal.
" === Touche Leader ===let mapleader = " " " Espace = Leader
" Espace+w → sauvegardernnoremap <leader>w :w<CR>" Espace+q → quitternnoremap <leader>q :q<CR>" Espace+h → retirer le surlignagennoremap <leader>h :nohlsearch<CR>Les commentaires se placent ici au-dessus des nnoremap, jamais en fin de
ligne : pour une commande de mapping, tout ce qui suit fait partie du
raccourci. Mesuré sur Vim 9.1, une ligne
nnoremap <leader>w :w<CR> " Espace+w enregistre un raccourci qui tape
:w, valide, puis rejoue les espaces et le texte du commentaire en mode
normal. :verbose nmap <leader>w affiche ce qui a réellement été enregistré.
Le raccourci Espace h est très pratique : après une recherche, toutes les
occurrences restent surlignées. Espace h enlève le surlignage sans perdre
la recherche, que n continue de parcourir.
Adapter l'indentation selon le type de fichier
Section intitulée « Adapter l'indentation selon le type de fichier »Un fichier Python utilise 4 espaces, un fichier YAML en utilise 2. Vim
peut ajuster automatiquement grâce aux autocommandes FileType :
filetype plugin indent on
autocmd FileType python set tabstop=4 shiftwidth=4 expandtabautocmd FileType yaml set tabstop=2 shiftwidth=2 expandtabautocmd FileType json set tabstop=2 shiftwidth=2 expandtabautocmd FileType sh set tabstop=2 shiftwidth=2 expandtabAppliquer les changements sans redémarrer
Section intitulée « Appliquer les changements sans redémarrer »Après avoir modifié votre .vimrc, inutile de fermer et rouvrir Vim :
:source ~/.vimrcCette commande relit le fichier de configuration et applique les
changements immédiatement. Les lignes autocmd sont alors enregistrées une
seconde fois : sans groupe augroup, chaque :source ajoute un doublon,
sans effet visible ici puisque chaque doublon refait le même réglage.
Installer des plugins avec vim-plug
Section intitulée « Installer des plugins avec vim-plug »Jusqu'ici, vous avez un Vim bien configuré mais « nu ». Les plugins ajoutent des fonctionnalités que Vim n'a pas d'origine : explorateur de fichiers, intégration Git, recherche fuzzy, thèmes modernes.
vim-plug est le gestionnaire de plugins le plus populaire (plus de 35 000 étoiles sur GitHub, 35 775 relevées le 1er octobre 2026). Il télécharge, installe et met à jour vos plugins en une commande.
Installer vim-plug
Section intitulée « Installer vim-plug »La commande suivante télécharge vim-plug, figé sur le commit de sa version
0.14.0 plutôt que sur le tag, qu'un mainteneur peut déplacer, puis vérifie
son empreinte SHA-256 avant que Vim ne l'exécute. Vous n'avez à le faire
qu'une seule fois ; le fichier atterrit dans ~/.vim/autoload/, que Vim
charge à la demande :
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/d80f495fabff8446972b8695ba251ca636a047b0/plug.vimecho "20b4c895f98d13848204698068c4dd031730d4e7c9c4b630d6273b9b9afcdcdb $HOME/.vim/autoload/plug.vim" \ | sha256sum --checkLa vérification doit répondre OK, relevé le 2026-10-01 sur le tag 0.14.0.
Déclarer les plugins dans .vimrc
Section intitulée « Déclarer les plugins dans .vimrc »Chaque ligne Plug correspond à un plugin. Le nom entre guillemets est
le dépôt GitHub (auteur/nom), et les lignes se placent entre plug#begin
et plug#end :
" === Plugins (vim-plug) ===call plug#begin('~/.vim/plugged')
" Navigation et fichiersPlug 'preservim/nerdtree' " Explorateur de fichiers en arborescencePlug 'junegunn/fzf', { 'do': { -> fzf#install() } } " Recherche fuzzyPlug 'junegunn/fzf.vim' " Commandes fzf pour Vim
" ÉditionPlug 'tpope/vim-commentary' " Commenter/décommenter avec gccPlug 'tpope/vim-surround' " Changer guillemets/parenthèsesPlug 'tpope/vim-repeat' " Rendre . compatible avec les pluginsPlug 'jiangmiao/auto-pairs' " Fermeture automatique de (, [, {, "
" GitPlug 'tpope/vim-fugitive' " Commandes Git depuis VimPlug 'airblade/vim-gitgutter' " Marqueurs +/~/- dans la gouttière
" ApparencePlug 'morhetz/gruvbox' " Thème de couleurs agréablePlug 'itchyny/lightline.vim' " Barre de statut coloréePlug 'yggdroot/indentline' " Guides d'indentation visuels
call plug#end()Installer les plugins
Section intitulée « Installer les plugins »Sauvegardez le .vimrc, relancez Vim, puis tapez :
:PlugInstallvim-plug télécharge et installe chaque plugin en parallèle. La fenêtre affiche la progression et un message « Done! » :

Gérer les plugins au quotidien
Section intitulée « Gérer les plugins au quotidien »Quatre commandes couvrent tout le cycle de vie d'un plugin, de
l'installation au nettoyage ; elles lisent toutes la liste déclarée dans le
.vimrc :
| Commande | Ce qu'elle fait |
|---|---|
:PlugInstall | Installe les nouveaux plugins ajoutés au .vimrc |
:PlugUpdate | Met à jour tous les plugins installés |
:PlugClean | Supprime les plugins dont la ligne Plug a été retirée |
:PlugStatus | Affiche l'état de chaque plugin |
Pour supprimer un plugin : supprimez sa ligne Plug dans le .vimrc, puis
lancez :PlugClean.
Les plugins essentiels en détail
Section intitulée « Les plugins essentiels en détail »Les 12 plugins déclarés plus haut couvrent les besoins courants. Voici ce que chacun apporte, avec les commandes Vim à connaître.
Gruvbox : un thème de couleurs lisible
Section intitulée « Gruvbox : un thème de couleurs lisible »Problème résolu : par défaut, le thème de Vim est peu contrasté. Gruvbox offre une palette de couleurs chaudes et équilibrées, agréable pour de longues sessions. Les mots-clés, chaînes, commentaires et fonctions ont chacun une couleur distincte.
Ajoutez ces lignes à votre .vimrc après le bloc plug#end() :
" === Thème Gruvbox ===set background=darkcolorscheme gruvboxset noshowmode " Cache -- INSERT -- car lightline l'affiche 
NERDTree : naviguer dans vos fichiers
Section intitulée « NERDTree : naviguer dans vos fichiers »Problème résolu : sans plugin, pour ouvrir un fichier vous devez taper son
chemin complet avec :e /chemin/vers/fichier. NERDTree affiche une
arborescence sur le côté gauche, comme dans VS Code.
" === NERDTree ===nnoremap <leader>n :NERDTreeToggle<CR>Appuyez sur Espace n pour afficher ou masquer l'explorateur :

Touches utiles dans NERDTree :
| Touche | Ce qu'elle fait |
|---|---|
o ou Entrée | Ouvrir le fichier ou développer le dossier |
s | Ouvrir dans un split vertical |
i | Ouvrir dans un split horizontal |
t | Ouvrir dans un nouvel onglet |
R | Rafraîchir l'arborescence |
m | Ouvrir le menu (créer, renommer, supprimer) |
I | Afficher/masquer les fichiers cachés |
q | Fermer NERDTree |
fzf.vim : chercher des fichiers instantanément
Section intitulée « fzf.vim : chercher des fichiers instantanément »Problème résolu : sur un projet avec des centaines de fichiers, retrouver le bon en tapant son chemin complet est fastidieux. fzf (fuzzy finder) vous permet de taper quelques lettres approximatives et retrouve le fichier pour vous.
" === fzf ===" Chercher un fichier par nomnnoremap <leader>f :Files<CR>" Naviguer dans les fichiers ouvertsnnoremap <leader>b :Buffers<CR>" Chercher du texte dans tout le projetnnoremap <leader>r :Rg<CR> 
La commande :Rg (Ripgrep) cherche du contenu dans les fichiers, comme
un grep ultra-rapide intégré à
Vim, et affiche les correspondances dans une liste filtrable.
vim-fugitive : utiliser Git sans quitter Vim
Section intitulée « vim-fugitive : utiliser Git sans quitter Vim »Problème résolu : pour faire un git status, vous devez normalement quitter
Vim, taper la commande, puis revenir. vim-fugitive intègre Git
directement dans Vim, avec des commandes qui portent le nom de leur
équivalent shell :
| Commande | Équivalent shell | Ce qu'elle fait |
|---|---|---|
:Git ou :G | git status | Résumé interactif des changements |
:Git diff | git diff | Compare avec le dernier commit |
:Git blame | git blame | Qui a modifié chaque ligne et quand |
:Git log | git log | Historique des commits |
:Gwrite | git add fichier | Ajoute le fichier courant |
:Gread | git checkout fichier | Annule les modifications locales |
vim-gitgutter : voir les modifications dans la gouttière
Section intitulée « vim-gitgutter : voir les modifications dans la gouttière »Problème résolu : quand vous modifiez un fichier versionné, il est difficile de savoir quelles lignes ont changé. vim-gitgutter affiche des marqueurs colorés dans la gouttière (colonne fine à gauche des numéros de ligne) :

| Marqueur | Couleur | Signification |
|---|---|---|
+ | Vert | Ligne ajoutée |
~ | Jaune | Ligne modifiée |
- | Rouge | Ligne supprimée |
Les raccourcis de navigation rapide n'existent que dans un fichier suivi par Git : le plugin les crée buffer par buffer, à l'ouverture d'un fichier versionné.
| Raccourci | Ce qu'il fait |
|---|---|
]c | Saute à la prochaine modification |
[c | Saute à la modification précédente |
<leader>hp | Prévisualise le changement |
<leader>hu | Annule la modification locale |
vim-surround : manipuler guillemets et parenthèses
Section intitulée « vim-surround : manipuler guillemets et parenthèses »Problème résolu : changer des guillemets simples en doubles, ou entourer un mot de parenthèses, demande normalement plusieurs étapes. vim-surround fait ça en une seule commande, et chaque ligne du tableau a été rejouée sur Vim 9.1 :
| Situation | Commande | Avant | Après |
|---|---|---|---|
| Changer les guillemets | cs"' | "hello" | 'hello' |
| Transformer en balise HTML | cs'<p> | 'hello' | <p>hello</p> |
| Supprimer les guillemets | ds" | "hello" | hello |
| Ajouter des guillemets autour d'un mot | ysiw" | hello | "hello" |
| Entourer la ligne de parenthèses | yss( | hello world | ( hello world ) |
La syntaxe suit le principe action + s + ancien + nouveau. cs"' =
change surround " par '. La parenthèse ouvrante ( ajoute des
espaces à l'intérieur ; la fermante ) les omet.
vim-commentary : commenter en une touche
Section intitulée « vim-commentary : commenter en une touche »Problème résolu : commenter du code nécessite de connaître le bon
caractère pour chaque langage (# en Python, // en JavaScript, " en
vimscript). vim-commentary détecte automatiquement le langage :
| Commande | Ce qu'elle fait |
|---|---|
gcc | Commenter/décommenter la ligne courante |
gcap | Commenter tout le paragraphe |
gc3j | Commenter la ligne courante et les 3 suivantes |
sélection visuelle + gc | Commenter toute la sélection |
lightline.vim : une barre de statut informative
Section intitulée « lightline.vim : une barre de statut informative »Problème résolu : la barre de statut par défaut de Vim est peu lisible. lightline la remplace par une barre colorée qui affiche le mode (NORMAL, INSERT, VISUAL…), le nom du fichier, l'encodage et la position.
" === Lightline ===let g:lightline = { 'colorscheme': 'gruvbox' }auto-pairs : fermeture automatique des délimiteurs
Section intitulée « auto-pairs : fermeture automatique des délimiteurs »Problème résolu : quand vous tapez (, vous devez taper ) plus tard.
auto-pairs l'ajoute automatiquement et place le curseur entre les deux.
Fonctionne avec [, {, ", ', `. Pour empêcher la fermeture dans un
cas précis, tapez Ctrl+v avant le caractère, qui est alors inséré tel
quel.
indentLine : visualiser l'indentation
Section intitulée « indentLine : visualiser l'indentation »Problème résolu : dans les fichiers YAML ou Python, l'indentation est significative, un espace en trop change le sens du fichier. indentLine affiche des lignes verticales fines à chaque niveau d'indentation pour vous aider à aligner correctement.
.vimrc complet récapitulatif
Section intitulée « .vimrc complet récapitulatif »Voici la configuration complète qui regroupe tous les réglages et plugins
présentés, suivie d'une installation rapide en cinq commandes. Elle a été
chargée telle quelle dans un conteneur Debian 13 : les 12 plugins
s'installent et colorscheme répond gruvbox.
" ============================================" .vimrc : Configuration Vim complète" ============================================
" === Apparence ===set numberset relativenumberset cursorlineset showmatchset laststatus=2set noshowmode
" === Indentation ===set tabstop=4set shiftwidth=4set expandtabset autoindentset smartindentfiletype plugin indent on
" === Recherche ===set incsearchset hlsearchset ignorecaseset smartcase
" === Comportement ===set encoding=utf-8set scrolloff=8set wildmenuset mouse=aset clipboard=unnamedplus
" === Persistent undo ===set undofileset undodir=~/.vim/undodir
" === Touche Leader ===let mapleader = " "nnoremap <leader>w :w<CR>nnoremap <leader>q :q<CR>nnoremap <leader>h :nohlsearch<CR>
" === Plugins (vim-plug) ===call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'Plug 'tpope/vim-commentary'Plug 'itchyny/lightline.vim'Plug 'tpope/vim-fugitive'Plug 'airblade/vim-gitgutter'Plug 'tpope/vim-surround'Plug 'tpope/vim-repeat'Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }Plug 'junegunn/fzf.vim'Plug 'jiangmiao/auto-pairs'Plug 'morhetz/gruvbox'Plug 'yggdroot/indentline'
call plug#end()
" === Thème ===set background=darkcolorscheme gruvbox
" === NERDTree ===nnoremap <leader>n :NERDTreeToggle<CR>
" === fzf ===nnoremap <leader>f :Files<CR>nnoremap <leader>b :Buffers<CR>nnoremap <leader>r :Rg<CR>
" === Lightline ===let g:lightline = { 'colorscheme': 'gruvbox' }
" === Configuration par type de fichier ===autocmd FileType python set tabstop=4 shiftwidth=4 expandtabautocmd FileType yaml set tabstop=2 shiftwidth=2 expandtabautocmd FileType json set tabstop=2 shiftwidth=2 expandtabautocmd FileType sh set tabstop=2 shiftwidth=2 expandtabCopiez-collez ces commandes pour tout installer d'un coup. Au tout premier
passage, l'étape 4 signale E185: Cannot find color scheme 'gruvbox' et rend
le code 1 : le thème n'est pas encore installé au moment où le .vimrc est
lu. Les 12 plugins s'installent malgré tout, et l'erreur disparaît au
lancement suivant.
# 1. Installer vim-plug 0.14.0 (commit figé, empreinte vérifiée)curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/d80f495fabff8446972b8695ba251ca636a047b0/plug.vimecho "20b4c895f98d13848204698068c4dd031730d4e7c9c4b630d6273b9b9afcdcdb $HOME/.vim/autoload/plug.vim" \ | sha256sum --check
# 2. Créer le dossier pour le persistent undomkdir -p ~/.vim/undodir
# 3. Copier le .vimrc (créer ~/.vimrc avec le contenu ci-contre)
# 4. Installer tous les plugins automatiquementvim -es -u ~/.vimrc -c 'PlugInstall --sync' -c 'qa'
# 5. Installer ripgrep pour la recherche fzf :Rg (optionnel)sudo apt install ripgrep # Ubuntu/Debiansudo dnf install ripgrep # RHEL/FedoraRécapitulatif des raccourcis Leader
Section intitulée « Récapitulatif des raccourcis Leader »Une fois votre .vimrc en place avec les plugins, voici tous les raccourcis
disponibles avec la touche Leader (Espace). :nmap <leader> les liste
depuis Vim, avec leur définition exacte :
| Raccourci | Action |
|---|---|
Espace w | Sauvegarder |
Espace q | Quitter |
Espace h | Enlever le surlignage de recherche |
Espace n | Ouvrir/fermer NERDTree |
Espace f | Recherche fuzzy de fichiers |
Espace b | Naviguer dans les buffers |
Espace r | Recherche de texte dans le projet |
Dépannage
Section intitulée « Dépannage »La plupart des pannes d'un .vimrc enrichi tiennent à un plugin non
installé, à un binaire Vim compilé sans une fonction, ou à une ligne
mal placée dans le fichier. Le tableau suit cet ordre.
| Symptôme | Cause probable | Solution |
|---|---|---|
| Le thème Gruvbox n'apparaît pas | Plugin non installé | :PlugInstall puis relancer Vim |
E185: Cannot find color scheme 'gruvbox' | Premier lancement, avant :PlugInstall | Installer les plugins, puis relancer Vim |
E492: Not an editor command: PlugInstall | vim-plug absent | Relancer la commande curl d'installation |
| Le copier-coller système ne fonctionne pas | Vim compilé sans +clipboard | sudo apt install vim-gtk3 |
fzf :Rg ne trouve rien | ripgrep non installé | sudo apt install ripgrep |
| NERDTree ne s'ouvre pas | Plugin non installé | Vérifier la ligne Plug et relancer :PlugInstall |
Le raccourci Espace+... ne fait rien | Leader mal placé | let mapleader = " " doit être avant les nnoremap |
| Un raccourci fait des choses étranges après son action | Commentaire en fin de ligne d'un nnoremap | Déplacer le commentaire au-dessus, vérifier avec :verbose nmap |
Une macro sauvegardée insère \<Esc> en toutes lettres | let @a='…' entre guillemets simples | Écrire let @a="…" |
E518: Unknown option: undodir | Vim trop ancien | Mettre à jour vers Vim 7.3+ |
u n'annule plus rien après réouverture, sans aucun message | Dossier undodir manquant, que Vim ne signale pas | mkdir -p ~/.vim/undodir |
À retenir
Section intitulée « À retenir »- Les buffers (
:ls,:bn,:bp) gardent plusieurs fichiers en mémoire, bien plus rapide que rouvrir à chaque fois. - Les splits (
:vsp,:sp, navigationCtrl+w) permettent de voir plusieurs fichiers côte à côte. - Les macros (
qa ... qpuis@aou10@a) automatisent les tâches répétitives ; dans le.vimrc, on les fige aveclet @a="…", entre guillemets doubles. - La commande globale
:g/motif/actionapplique une action à toutes les lignes correspondant à un motif, extrêmement puissante sur les fichiers de logs ou de configuration. - Un
nnoremapn'accepte pas de commentaire en fin de ligne : le texte deviendrait une partie du raccourci. - vim-plug installe et gère les plugins en une ligne ; les 12 plugins présentés couvrent les besoins courants (fichiers, Git, recherche, édition, apparence).
- Le
.vimrcse construit progressivement, commencez minimal et ajoutez des options quand vous en ressentez le besoin. - Sauvegardez votre
.vimrcdans un dépôt Git (dotfiles) pour le retrouver sur chaque machine.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Nix, le gestionnaire reproductible
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications