Édition vim / nano sous Linux : modes, raccourcis et EDITOR
À la fin de ce tutoriel, vous saurez choisir entre nano et vim, éditer un fichier en SSH sans IDE, sauver/quitter sans panique, naviguer en mode Normal vim, configurer
EDITOR/VISUAL, et utilisersudoeditpour les fichiers système — le tout dans un lab jetable sous/tmp.Niveau : Débutant · Temps estimé : 35–45 min · Versions testées : Ubuntu 22.04 / 24.04, Debian 12 ; notes Rocky/Alma 9 · Dernière vérification : 2026-09-11
Slug proposé :
linux-vim-nano· Série : Linux Basics · Remplace / fusionne : N/A — création (leçon #9)
Prérequis
- Avoir suivi Terminal & navigation (
pwd,ls,cd, chemins) - Utile : SSH & clés (édition fréquente en session distante) et Bash scripting
- Une machine Linux (VM, WSL2, Dual Boot ou cloud) avec un compte non-root
nanoet/ouvim(souvent préinstallés ; commandes d’install ci-dessous)
Coût estimé : 0 €. Travaillez uniquement dans /tmp/linux-vim-nano-lab — jamais d’édition directe de /etc en root « pour voir ».
Ce que nous allons construire
Lab édition terminal (jetable)
├── nano → ouvrir, sauver (Ctrl+O), quitter (Ctrl+X), chercher
├── vim → modes Normal / Insert / Command ; :w :q :wq :q!
├── Comparaison → quand nano vs vim en DevOps / SSH
├── EDITOR/VISUAL → select-editor, export pour git/crontab
├── sudoedit → édition privilégiée sans shell root durable
└── Quiz + FAQ + erreurs fréquentes

(Alt : « Édition vim / nano Linux : modes, raccourcis, EDITOR — lab DevOps ».)
Leçon #9 de Linux Basics : sans éditeur terminal, un sshd_config, un script ou un Dockerfile à distance devient un blocage.
Étape 1 — Pourquoi éditer dans le terminal (vim, nano, SSH)
Sur un serveur, l’IDE graphique n’est souvent pas là. Vous corrigez un fichier via SSH, dans un conteneur, ou pendant un incident. Deux familles d’éditeurs dominent :
| Éditeur | Profil | Force | Limite |
|---|---|---|---|
| nano | Débutant | Raccourcis affichés en bas ; sauver/quitter intuitifs | Moins puissant pour macros / refactors |
| vim (ou vi) | Progression DevOps | Omniprésent, modes, recherche, efficacité clavier | Courbe d’apprentissage (modes) |
Message clé : maîtrisez nano pour être opérationnel en 5 minutes, puis vim pour rester efficace partout (vi est quasi universel). less/more servent à lire (q pour quitter) — ce ne sont pas des éditeurs.
Vérifiez ce qui est installé :
command -v nano; command -v vim; command -v vi
nano --version | head -n 1
vim --version | head -n 1
Installation si besoin (Ubuntu/Debian) :
sudo apt update && sudo apt install -y nano vim
Sur Rocky/Alma 9 :
sudo dnf install -y nano vim-enhanced
Étape 2 — Lab jetable et premier fichier avec nano
mkdir -p /tmp/linux-vim-nano-lab
cd /tmp/linux-vim-nano-lab
printf '%sn' '# notes lab' 'app_port=8080' 'log_level=info' > notes.conf
ls -la
Ouvrez avec nano :
nano notes.conf
Repères nano (bandeau bas de l’écran) :
| Raccourci | Action |
|---|---|
| Ctrl+O puis Entrée | Enregistrer (Write Out) |
| Ctrl+X | Quitter (propose de sauver si modifié) |
| Ctrl+W | Chercher un motif |
| Ctrl+K / Ctrl+U | Couper la ligne / coller |
| Ctrl+_ | Aller à une ligne |
| Alt+U | Annuler (selon build) |
Modifiez log_level=info en log_level=debug, sauvez (Ctrl+O, Entrée), quittez (Ctrl+X). Vérifiez :
cat notes.conf
grep log_level notes.conf
Astuce : nano -l notes.conf affiche les numéros de ligne.
Étape 3 — vim : les modes (Normal, Insert, Command)
Vim n’est pas « cassé » : il a des modes. Oublier le mode explique 90 % des blocages débutants.
| Mode | Entrée | Usage |
|---|---|---|
| Normal | démarrage / Esc | Navigation, copier, supprimer, commandes |
| Insert | i, a, o |
Saisie de texte |
| Visual | v / V |
Sélection |
| Command-line | : depuis Normal |
:w, :q, :wq, :q!, :set number |
Ouvrez le même fichier :
vim notes.conf
Séquence minimale « je dois juste changer une valeur » :
- Touche
i→ Insert (souvent-- INSERT --en bas) - Éditez le texte
- Esc → revenir en Normal
- Tapez
:wqpuis Entrée → écrire et quitter
Pour abandonner sans sauver : Esc, puis :q!.
Autres entrées Insert : a (après curseur), o / O (nouvelle ligne), A (fin de ligne).
Étape 4 — vim pratique : navigation, yy/dd, recherche
Restez en Normal (Esc). Déplacements utiles :
| Touche | Effet |
|---|---|
h j k l |
Gauche / bas / haut / droite (flèches OK aussi) |
0 / $ |
Début / fin de ligne |
gg / G |
Début / fin de fichier |
/motif puis n / N |
Chercher suivant / précédent |
dd |
Couper (supprimer) la ligne |
yy puis p |
Copier la ligne puis coller |
u |
Undo |
| Ctrl+R | Redo |
Lab guidé :
cd /tmp/linux-vim-nano-lab
cp notes.conf app.env
vim app.env
Dans vim : Esc, :set number, /app_port, Entrée, i pour éditer, Esc, yy, p pour dupliquer une ligne de test, Esc, :wq.
Réflexe : Esc avant toute commande :. Une session vimtutor (15–20 min) ancre les gestes.
vimtutor
Étape 5 — nano vs vim : que choisir en DevOps ?
| Situation | Choix conseillé |
|---|---|
| Première correction urgente sur un VPS | nano |
Fichier long, multi-hops SSH, vi seul dispo |
vim / vi |
| Script bash de 30 lignes, confort | nano ou vim selon habitude |
| Pairing / live démo pour juniors | nano (raccourcis visibles) |
| Refactor + macros + buffers | vim |
Les deux coexistent souvent (EDITOR=nano pour git/cron, vim au quotidien). L’essentiel : savoir sortir sans tuer la session SSH.
Étape 6 — EDITOR, VISUAL et sudoedit
De nombreux outils lancent « votre » éditeur : crontab -e, git commit, visudo, kubectl edit.
echo "EDITOR=${EDITOR:-<vide>}"
echo "VISUAL=${VISUAL:-<vide>}"
# Session courante (exemple nano) :
export EDITOR=nano
export VISUAL=nano
# Persistant pour bash :
grep -q 'EDITOR=nano' ~/.bashrc || echo 'export EDITOR=nano' >> ~/.bashrc
Sur Debian/Ubuntu, l’outil interactif :
# select-editor # décommentez pour choisir nano/vim system-wide user
Fichiers système : évitez sudo vim /etc/... (le fichier peut finir root-owned avec un vim swap bizarre). Préférez :
# Exemple pédagogique — cible un fichier COPIÉ, pas un vrai /etc :
cp /etc/hosts /tmp/linux-vim-nano-lab/hosts.copy
EDITOR=nano sudoedit /tmp/linux-vim-nano-lab/hosts.copy
# sudoedit copie, ouvre $EDITOR en user, puis réécrit avec privilèges
sudo -e est l’alias courant de sudoedit. En prod : même pattern sur /etc/... après backup — hors lab /tmp.
Étape 7 — Mini-lab : script + lecture seule
Créez et éditez un petit script, puis comparez avec less :
cd /tmp/linux-vim-nano-lab
cat > hello.sh << 'EOF'
#!/usr/bin/env bash
set -euo pipefail
echo "hello from vim/nano lab"
EOF
chmod +x hello.sh
nano hello.sh # ou : vim hello.sh
./hello.sh
less hello.sh # lecture ; q pour quitter — pas d’édition
Ajoutez une deuxième ligne echo "done" avec l’éditeur de votre choix, sauvez, relancez ./hello.sh.
Checklist de validation
- [ ]
nano notes.conf: modifier, Ctrl+O, Ctrl+X,catOK - [ ]
vim:i→ texte → Esc →:wq(et savoir faire:q!) - [ ] Recherche vim
/motif+n - [ ]
export EDITOR=nano(ou vim) testé mentalement pourcrontab -e - [ ] Distinction claire :
lesslit, nano/vim écrivent - [ ] Lab limité à
/tmp/linux-vim-nano-lab
Nettoyage — lab jetable
rm -rf /tmp/linux-vim-nano-lab
# Les paquets nano/vim peuvent rester installés (utiles au quotidien)
Erreurs fréquentes
| Symptôme | Cause | Correction |
|---|---|---|
| Vim « mange » les frappes / insert bizarre | Pas en mode Insert, ou Insert oublié | Esc, puis i ; regarder la barre du bas |
| Impossible de quitter vim | Tentative de Ctrl+C / fermer le terminal | Esc, :q! (sans sauver) ou :wq |
E37: No write since last change |
:q alors que buffer modifié |
:wq ou :q! |
Permission denied en sauvant |
Fichier root ou hors home | Lab dans /tmp ; système via sudoedit |
| Nano quitte sans sauver | Ctrl+X puis réponse « N » | Refaire, Ctrl+O avant Ctrl+X |
vim: command not found |
Paquet absent (image minimale) | apt/dnf install vim ou utiliser vi / nano |
| Swap file déjà existant | vim planté / session parallèle | Lire le message ; d delete swap si fichier OK |
Quiz (3 questions)
1. Quelle séquence vim sauve et quitte proprement ?
– A. Ctrl+X puis Entrée
– B. Esc puis :wq puis Entrée
– C. :exit! sans Esc
2. Quel raccourci nano enregistre le fichier ?
– A. Ctrl+S
– B. Ctrl+O
– C. Ctrl+W
3. Pourquoi préférer sudoedit à sudo vim /etc/fichier ?
– A. Parce que vim refuse root
– B. Pour éditer via $EDITOR en user puis réécrire avec privilèges, plus propre
– C. Parce que nano est interdit avec sudo
Réponses : 1‑B · 2‑B · 3‑B
FAQ
Nano ou vim pour débuter le DevOps ?
Commencez par nano pour débloquer SSH et les configs en quelques minutes (raccourcis affichés). Apprenez ensuite le socle vim (modes, :wq, recherche) : sur beaucoup d’images minimales, seul vi est présent. Les deux compétences sont complémentaires, pas concurrentes.
Comment sortir de vim si je suis perdu ?
Appuyez plusieurs fois sur Esc pour revenir en mode Normal, tapez :q! puis Entrée pour quitter sans enregistrer. Si vous voulez garder les changements : :wq. Évitez de fermer le terminal SSH : vous laisseriez des fichiers .swp.
À quoi servent EDITOR et VISUAL ?
Ce sont des variables d’environnement qui indiquent aux programmes quel éditeur lancer (crontab -e, git commit, visudo, kubectl edit). Exemple : export EDITOR=nano. VISUAL est l’équivalent « éditeur plein écran » ; beaucoup d’outils consultent les deux. Alignez-les pour éviter les surprises.
Pour aller plus loin
vimtutor;man nano;man vim- Prochaines leçons Basics : find & locate, archives tar/gzip, pipes & redirections
- Côté shell : grep & ripgrep, Bash scripting
Maillage série Linux Basics
| ← Précédent | Se connecter en SSH avec des clés : ssh-keygen, agent et config |
| → Suivant | find & locate |
| Hub | Linux Basics |
| Aussi | Terminal & navigation · Bash scripting |
Meta publication (à remplir dans Rank Math / SEO)
- Title SEO : Édition vim / nano Linux : modes et raccourcis (2026)
- Meta description (≤ 155) : Éditez fichiers sous Linux avec nano et vim : modes, raccourcis, EDITOR. Lab DevOps safe dans /tmp (2026).
- Focus keyphrase : vim nano
- Schemas Rank Math : Article + HowTo (étapes lab) + FAQ (3 questions ci-dessus)
- Image mise en avant :
assets/web/devopelastichayway/cover-linux-vim-nano-1200x630.webp(Visuels Linux — WebP 1200×630) - Catégorie : Linux · Niveau : Débutant
- Slug :
linux-vim-nano - Publish : HOLD
← Retour parcours Linux — Basics, Admin, Réseau & Sécurité, Shell & Automation.