đ Retour au Sommaire
Maintenant que vous avez choisi et installé votre éditeur, il est temps de le transformer en un véritable outil de productivité. Une configuration bien pensée peut vous faire gagner des heures de travail et rendre votre expérience de développement beaucoup plus agréable.
Analogie : Câest comme amĂ©nager un atelier. Vous avez les outils de base, maintenant il faut les organiser, ajouter un bon Ă©clairage, des raccourcis pratiques, pour travailler efficacement.
Dans cette section, nous nous concentrerons principalement sur VS Code (lâoutil recommandĂ© pour dĂ©buter), mais nous couvrirons aussi les configurations de base pour dâautres Ă©diteurs.
RĂšgle dâor : Commencez simple, ajoutez progressivement.
Ne tombez pas dans le piÚge de passer des jours à configurer votre éditeur. Commencez avec une configuration minimale fonctionnelle, puis ajoutez des outils au fur et à mesure que vous en ressentez le besoin.
Cette extension est la pierre angulaire du développement C dans VS Code.
Installation :
Ctrl+Shift+X pour ouvrir le panneau des extensionsFonctionnalités fournies :
F12), trouver les rĂ©fĂ©rencesConfiguration de lâextension C/C++ :
Ouvrez les paramÚtres (Ctrl+,) et recherchez « C_Cpp ». Voici les paramÚtres recommandés :
{
"C_Cpp.default.cStandard": "c17",
"C_Cpp.default.compilerPath": "/usr/bin/gcc",
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.errorSquiggles": "enabled",
"C_Cpp.autocomplete": "default"
}
Comment accéder aux paramÚtres JSON :
Ctrl+Shift+P pour ouvrir la palette de commandesUn pack qui regroupe plusieurs extensions utiles.
Contenu du pack :
Installation :
Recherchez « C/C++ Extension Pack » dans les extensions.
Permet dâexĂ©cuter rapidement votre code avec un simple raccourci.
Installation :
Recherchez « Code Runner » dans les extensions (par Jun Han).
Utilisation :
.c â « Run Code »Ctrl+Alt+NConfiguration recommandĂ©e :
{
"code-runner.runInTerminal": true,
"code-runner.clearPreviousOutput": true,
"code-runner.saveFileBeforeRun": true,
"code-runner.executorMap": {
"c": "cd $dir && gcc -Wall -Wextra -std=c17 $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt"
}
}
Cette configuration :
-Wall -Wextra)executorMap pour définir la commande spécifique au langage CAffiche les erreurs et warnings directement dans le code, à cÎté de la ligne concernée.
Installation :
Recherchez « Error Lens » (par Alexander).
RĂ©sultat : Les erreurs apparaissent en rouge directement dans votre code, plus besoin dâaller chercher dans le panneau de problĂšmes.
Colore les paires de parenthĂšses/accolades pour mieux les identifier.
Note : Cette fonctionnalitĂ© est intĂ©grĂ©e nativement dans VS Code depuis la version 1.60. Il nâest pas nĂ©cessaire dâinstaller dâextension tierce.
Activation :
{
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active"
}
Colore les niveaux dâindentation pour mieux visualiser la structure du code.
Installation :
Recherchez « indent-rainbow » (par oderwat).
Améliore la coloration syntaxique pour C et C++.
Installation :
Recherchez « Better C++ Syntax » (par Jeff Hykin).
AmĂ©liore lâintĂ©gration Git dans VS Code (nous verrons Git plus tard).
Installation :
Recherchez « GitLens » (par GitKraken).
Met en évidence les commentaires TODO, FIXME, etc. dans votre code.
Installation :
Recherchez « Todo Tree » (par Gruntfuggly).
Exemple :
// TODO: Optimiser cette fonction
// FIXME: Bug si n < 0
Ces commentaires apparaßtront dans un panneau dédié.
Permet de marquer des lignes importantes et dây revenir rapidement.
Installation :
Recherchez « Bookmarks » (par Alessandro Fragnani).
Ouvrez les paramĂštres utilisateur en JSON (Ctrl+Shift+P â « Preferences: Open User Settings (JSON) »).
Voici une configuration complÚte recommandée pour débuter en C :
{
// ============================================
// ĂDITEUR - APPARENCE
// ============================================
"editor.fontSize": 14,
"editor.fontFamily": "'Fira Code', 'Cascadia Code', 'JetBrains Mono', monospace",
"editor.fontLigatures": true,
"editor.lineNumbers": "on",
"editor.minimap.enabled": true,
"editor.rulers": [80, 120],
"workbench.colorTheme": "Dark+ (default dark)",
// ============================================
// ĂDITEUR - COMPORTEMENT
// ============================================
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.detectIndentation": false,
"editor.wordWrap": "off",
"editor.formatOnSave": true,
"editor.formatOnPaste": false,
"editor.autoClosingBrackets": "always",
"editor.autoClosingQuotes": "always",
"editor.suggestSelection": "first",
"editor.acceptSuggestionOnEnter": "on",
// ============================================
// ĂDITEUR - GUIDES VISUELS
// ============================================
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active",
"editor.guides.indentation": true,
"editor.renderWhitespace": "boundary",
"editor.renderControlCharacters": false,
// ============================================
// FICHIERS
// ============================================
"files.autoSave": "onFocusChange",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.encoding": "utf8",
"files.eol": "\n",
// ============================================
// TERMINAL
// ============================================
"terminal.integrated.fontSize": 13,
"terminal.integrated.fontFamily": "monospace",
"terminal.integrated.cursorStyle": "line",
// ============================================
// C/C++ CONFIGURATION
// ============================================
"C_Cpp.default.cStandard": "c17",
"C_Cpp.default.compilerPath": "/usr/bin/gcc",
"C_Cpp.default.intelliSenseMode": "linux-gcc-x64",
"C_Cpp.errorSquiggles": "enabled",
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: LLVM, IndentWidth: 4, ColumnLimit: 80 }",
// ============================================
// CODE RUNNER
// ============================================
"code-runner.runInTerminal": true,
"code-runner.clearPreviousOutput": true,
"code-runner.saveFileBeforeRun": true,
"code-runner.executorMap": {
"c": "cd $dir && gcc -Wall -Wextra -std=c17 $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt"
},
// ============================================
// DIVERS
// ============================================
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"telemetry.telemetryLevel": "off"
}
| Raccourci | Action |
|---|---|
Ctrl+S |
Sauvegarder |
Ctrl+Shift+S |
Sauvegarder sous⊠|
Ctrl+N |
Nouveau fichier |
Ctrl+O |
Ouvrir un fichier |
Ctrl+W |
Fermer lâonglet actuel |
Ctrl+Shift+P |
Palette de commandes |
Ctrl+P |
Recherche rapide de fichier |
Ctrl+, |
ParamĂštres |
Ctrl+B |
Afficher/masquer la barre latérale |
Ctrl+ ` | Afficher/masquer le terminal | |
| Raccourci | Action |
|---|---|
Ctrl+X |
Couper la ligne (si rien nâest sĂ©lectionnĂ©) |
Ctrl+C |
Copier la ligne (si rien nâest sĂ©lectionnĂ©) |
Ctrl+V |
Coller |
Ctrl+D |
Sélectionner le mot suivant identique |
Ctrl+Shift+K |
Supprimer la ligne |
Alt+â / Alt+â |
Déplacer la ligne vers le haut/bas |
Shift+Alt+â / Shift+Alt+â |
Dupliquer la ligne vers le haut/bas |
Ctrl+/ |
Commenter/décommenter |
Ctrl+] / Ctrl+[ |
Indenter/désindenter |
Ctrl+Space |
DĂ©clencher lâauto-complĂ©tion |
| Raccourci | Action |
|---|---|
Ctrl+G |
Aller Ă la ligne |
Ctrl+F |
Rechercher |
Ctrl+H |
Rechercher et remplacer |
Ctrl+Shift+F |
Rechercher dans tous les fichiers |
F12 |
Aller à la définition |
Alt+F12 |
Aperçu de la définition |
Shift+F12 |
Trouver toutes les références |
Ctrl+Tab |
Naviguer entre les onglets |
| Raccourci | Action |
|---|---|
F5 |
Démarrer le débogage |
F9 |
Placer/enlever un breakpoint |
F10 |
Step over (passer Ă la ligne suivante) |
F11 |
Step into (entrer dans la fonction) |
Shift+F11 |
Step out (sortir de la fonction) |
Pour modifier les raccourcis : Ctrl+K Ctrl+S (ou File â Preferences â Keyboard Shortcuts).
Les polices avec ligatures rendent le code plus lisible.
# Télécharger et installer
sudo apt install fonts-firacode
Ou manuellement :
.ttf dans ~/.fonts/fc-cache -f -v# Télécharger
wget https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip
# Décompresser
unzip JetBrainsMono-2.304.zip -d ~/.fonts/
# Actualiser
fc-cache -f -v
Téléchargez depuis https://github.com/microsoft/cascadia-code/releases
Installez comme Fira Code.
AprÚs installation : Redémarrez VS Code et la police apparaßtra dans les paramÚtres.
Dark+ (default dark) : Le thÚme par défaut, excellent pour commencer.
One Dark Pro : Populaire et agréable pour les yeux.
Ctrl+Shift+X â Rechercher "One Dark Pro"
Dracula Official : Contraste élevé, trÚs populaire.
Monokai Pro : Classique, utilisé par beaucoup de développeurs.
Light+ (default light) : Le thÚme clair par défaut.
Solarized Light : Doux pour les yeux en extérieur ou environnement lumineux.
Ctrl+K Ctrl+T puis sélectionnez un thÚme dans la liste.
Les snippets sont des modÚles de code réutilisables.
Dans un fichier .c, tapez :
for puis Tab â GĂ©nĂšre une boucle forif puis Tab â GĂ©nĂšre une condition ifmain puis Tab â GĂ©nĂšre la fonction mainCtrl+Shift+P â « Preferences: Configure User Snippets » â « c.json »
Exemple de snippet personnalisé :
{
"Header comment": {
"prefix": "header",
"body": [
"/*",
" * Fichier: $TM_FILENAME",
" * Auteur: ${1:Votre nom}",
" * Date: $CURRENT_DATE/$CURRENT_MONTH/$CURRENT_YEAR",
" * Description: ${2:Description}",
" */",
"",
"$0"
],
"description": "Ajoute un en-tĂȘte de fichier"
},
"Function comment": {
"prefix": "fcom",
"body": [
"/**",
" * @brief ${1:Description courte}",
" * ",
" * ${2:Description détaillée}",
" * ",
" * @param ${3:param} ${4:Description du paramĂštre}",
" * @return ${5:Description du retour}",
" */",
"$0"
],
"description": "Commentaire de fonction"
},
"Safe malloc": {
"prefix": "smalloc",
"body": [
"${1:type} *${2:ptr} = malloc(sizeof(${1:type}) * ${3:count});",
"if (${2:ptr} == NULL) {",
" fprintf(stderr, \"Erreur d'allocation mémoire\\\\n\");",
" exit(EXIT_FAILURE);",
"}",
"$0"
],
"description": "Allocation mémoire avec vérification"
}
}
Utilisation :
header puis Tab â InsĂšre un en-tĂȘte de fichierfcom puis Tab â InsĂšre un commentaire de fonctionsmalloc puis Tab â InsĂšre un malloc sĂ©curisĂ©Les tĂąches permettent de compiler rapidement avec un raccourci.
Ctrl+Shift+P â « Tasks: Configure Task »Remplacez le contenu par :
{
"version": "2.0.0",
"tasks": [
{
"label": "Compiler C (debug)",
"type": "shell",
"command": "gcc",
"args": [
"-g",
"-Wall",
"-Wextra",
"-std=c17",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"detail": "Compile le fichier actuel avec GCC (mode debug)"
},
{
"label": "Compiler C (release)",
"type": "shell",
"command": "gcc",
"args": [
"-O2",
"-Wall",
"-Wextra",
"-std=c17",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"problemMatcher": ["$gcc"],
"detail": "Compile le fichier actuel avec GCC (optimisé)"
},
{
"label": "Nettoyer",
"type": "shell",
"command": "rm",
"args": [
"-f",
"${fileDirname}/${fileBasenameNoExtension}"
],
"detail": "Supprime l'exécutable"
}
]
}
Ctrl+Shift+B : Lance la tĂąche de build par dĂ©faut (debug)Ctrl+Shift+P â « Tasks: Run Task » : Choisir une tĂąche spĂ©cifiqueInstallez clang-format :
sudo apt install clang-format
à la racine de votre projet, créez .clang-format :
---
BasedOnStyle: LLVM
IndentWidth: 4
ColumnLimit: 80
UseTab: Never
BreakBeforeBraces: Linux
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: true
PointerAlignment: Right
SpaceBeforeParens: ControlStatements
Dans vos paramĂštres (settings.json) :
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-vscode.cpptools",
"C_Cpp.formatting": "clangFormat"
}
Maintenant, quand vous sauvegardez (Ctrl+S), votre code sera automatiquement formaté.
CLion est déjà bien configuré out-of-the-box. Quelques ajustements recommandés :
ParamĂštres (Ctrl+Alt+S) :
Plugins recommandés :
Configuration de base dans ~/.vimrc :
" ===================================
" GĂNĂRAL
" ===================================
set number " Numéros de ligne
set relativenumber " Numéros relatifs
set ruler " Position du curseur
set showcmd " Affiche les commandes
set wildmenu " Menu de complétion
set mouse=a " Support souris
" ===================================
" INDENTATION
" ===================================
set tabstop=4 " Tabulations = 4 espaces
set shiftwidth=4 " Indentation = 4 espaces
set expandtab " Convertir tab en espaces
set autoindent " Auto-indentation
set smartindent " Indentation intelligente
" ===================================
" RECHERCHE
" ===================================
set incsearch " Recherche incrémentale
set hlsearch " Surligne les résultats
set ignorecase " Ignore la casse
set smartcase " Casse intelligente
" ===================================
" APPARENCE
" ===================================
syntax on " Coloration syntaxique
colorscheme desert " ThĂšme
set background=dark
set cursorline " Surligne la ligne actuelle
" ===================================
" FICHIERS
" ===================================
set encoding=utf-8
set fileencoding=utf-8
" ===================================
" COMPILATION C
" ===================================
" F5 pour compiler et exécuter
autocmd FileType c map <F5> :w<CR>:!gcc -Wall -Wextra -std=c17 % -o %< && ./%< <CR>
" F6 pour compiler seulement
autocmd FileType c map <F6> :w<CR>:!gcc -Wall -Wextra -std=c17 % -o %< <CR>
Plugins recommandés avec vim-plug :
Installez vim-plug :
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Ajoutez dans ~/.vimrc :
call plug#begin('~/.vim/plugged')
" Auto-complétion
Plug 'ycm-core/YouCompleteMe'
" Explorateur de fichiers
Plug 'preservim/nerdtree'
" Barre de statut
Plug 'vim-airline/vim-airline'
" Git integration
Plug 'tpope/vim-fugitive'
" Commentaires rapides
Plug 'tpope/vim-commentary'
" Pairs d'accolades colorées
Plug 'luochen1990/rainbow'
call plug#end()
" Activer rainbow brackets
let g:rainbow_active = 1
Puis installez les plugins : :PlugInstall
Configuration minimale :
Settings â Editor :
Settings â Compiler :
-Wall, -Wextra, -pedanticc17 ou c11Settings â Editor â Syntax highlighting :
Créez des modÚles de fichiers pour gagner du temps.
Pour VS Code, créez un fichier template.c :
/**
* @file template.c
* @author Votre Nom
* @date DATE
* @brief Description courte
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
// TODO: Implémenter
return EXIT_SUCCESS;
}
Copiez ce template au démarrage de chaque nouveau projet.
Créez un script compile.sh à la racine de vos projets :
#!/bin/bash
# Script de compilation rapide
# Couleurs
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
# ParamĂštres
SOURCE="$1"
OUTPUT="${SOURCE%.c}"
FLAGS="-Wall -Wextra -std=c17 -g"
if [ -z "$SOURCE" ]; then
echo "Usage: ./compile.sh fichier.c"
exit 1
fi
echo "Compilation de $SOURCE..."
gcc $FLAGS "$SOURCE" -o "$OUTPUT"
if [ $? -eq 0 ]; then
echo -e "${GREEN}â Compilation rĂ©ussie${NC}"
echo "Exécutable: ./$OUTPUT"
else
echo -e "${RED}â Erreur de compilation${NC}"
exit 1
fi
Rendez-le exécutable :
chmod +x compile.sh
Utilisation :
./compile.sh monprogramme.c
Ajoutez dans ~/.bashrc :
# Alias pour la compilation C
alias gcc-debug='gcc -Wall -Wextra -g -std=c17'
alias gcc-release='gcc -Wall -Wextra -O2 -std=c17'
alias gcc-strict='gcc -Wall -Wextra -Werror -pedantic -std=c17'
# Alias pour Valgrind
alias valgrind-check='valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes'
# Alias pour le nettoyage (limité au répertoire courant, non récursif)
alias clean-exe='find . -maxdepth 1 -type f -executable -not -name "*.sh" -delete'
Rechargez :
source ~/.bashrc
~/projets-c/
âââ exercices/
â âââ ex01/
â âââ ex02/
â âââ ...
âââ projets/
â âââ calculatrice/
â âââ gestionnaire-fichiers/
â âââ ...
âââ templates/
â âââ template.c
â âââ template-header.h
â âââ Makefile.template
âââ outils/
âââ compile.sh
âââ valgrind-check.sh
Créez un workspace pour vos projets C :
projets-c.code-workspaceExemple de contenu :
{
"folders": [
{
"path": "exercices"
},
{
"path": "projets"
}
],
"settings": {
"C_Cpp.default.cStandard": "c17",
"editor.formatOnSave": true
}
}
Avant de commencer à coder sérieusement, vérifiez que vous avez :
Solution 1 : VĂ©rifiez que lâextension C/C++ est bien installĂ©e et activĂ©e.
Solution 2 : Rechargez VS Code (Ctrl+Shift+P â « Developer: Reload Window »).
Solution 3 : Créez un fichier c_cpp_properties.json :
Ctrl+Shift+P â « C/C++: Edit Configurations (JSON) »
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
Vérifiez que clang-format est installé :
which clang-format
Si non installé :
sudo apt install clang-format
Vérifiez la configuration dans settings.json et assurez-vous que "code-runner.runInTerminal" est true.
Ă ce stade, vous avez :
Votre environnement de développement est maintenant optimisé pour la productivité.
Prochaine étape : Dans la section 2.5, nous découvrirons les DevContainers, une technologie moderne pour créer des environnements de développement reproductibles.
formatOnSave avec clang-formatConseil final : Prenez le temps de vous familiariser avec votre environnement. Un éditeur bien configuré devient un véritable allié dans votre apprentissage du C.