Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
vim [Le 16/01/2026, 02:47] – [Vi IMproved] ça veut dire quoi <control-w>-s !? c'est quoi CScope !? krodelabestiolevim [Le 27/01/2026, 00:17] (Version actuelle) – [Vi IMproved] clarification krodelabestiole
Ligne 1: Ligne 1:
-{{tag>éditeur_de_texte console programmation IDE}}+{{tag>éditeur_de_texte console programmation IDE vétuste}}
  
 ====== Vi IMproved ====== ====== Vi IMproved ======
Ligne 5: Ligne 5:
 **[[wpfr>Vim]]** est un [[:éditeur de texte]] pour le [[:terminal]] sous [[:GNU]]/[[:Linux]]. **[[wpfr>Vim]]** est un [[:éditeur de texte]] pour le [[:terminal]] sous [[:GNU]]/[[:Linux]].
  
-Il est très apprécié des utilisateur·ice·s avancé·e·s et des développeurs pour toutes ses fonctions qui en font un très bon [[:IDE]] (coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche évoluée, ...) et est extensible par des scripts.+Il est très apprécié des utilisateur·ice·s avancé·e·s et des développeur·euse·s pour toutes ses fonctions qui en font un très bon [[:IDE]] (coloration syntaxique de 200 langages, complétion automatique, comparaison de fichiers, recherche évoluée, ...) et peut enrichir ses fonctionnalités par des extensions.
  
 <note important> <note important>
-**Vi** et **Vim** ne sont pas intuitifs et pas adaptés aux personnes qui ne sont pas intéressées par l'informatique, ou n'en ont pas un usage qui justifie une importante période d'apprentissage. **Vi** a peu d'intérêt en dehors de raccourcis clavier qui accélère l'édition du texte quand ils sont maîtrisés.+**Vi** et **Vim** ne sont pas intuitifs et pas adaptés aux personnes qui ne sont pas intéressées par l'informatique, ou n'en ont pas un usage qui justifie une importante période d'apprentissage. **Vi** a peu d'intérêt en dehors de raccourcis clavier qui accélèrent l'édition du texte quand ils sont maîtrisés.
  
 Si on peut espérer gagner du temps sur le long terme, cette courbe d'apprentissage est dans tous les cas très raide.((Voir par exemple **(//en//)** [[https://stackoverflow.com/questions/4620672/how-can-i-copy-and-paste-content-from-one-file-to-another|ce sujet]] sur lequel est discutée la technique à employer pour copier du texte d'un fichier à un autre.)) Si on peut espérer gagner du temps sur le long terme, cette courbe d'apprentissage est dans tous les cas très raide.((Voir par exemple **(//en//)** [[https://stackoverflow.com/questions/4620672/how-can-i-copy-and-paste-content-from-one-file-to-another|ce sujet]] sur lequel est discutée la technique à employer pour copier du texte d'un fichier à un autre.))
  
-Pour éditer rapidement du texte depuis un [[:terminal]], **[[:nano]]** est bien plus accessible et simple d'utilisation.+Pour éditer rapidement du texte depuis un [[:terminal]], **[[:nano]]** est bien plus accessible et simple d'utilisation (les raccourcis utiles sont indiqués en bas de l'écran).
 </note> </note>
  
-Contrairement à la plupart des éditeurs, Vim est un éditeur modal((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**))Selon le mode où vous vous trouvez, les touches auront des actions différentes.+**Vim** a la particularité de proposer plusieurs [[#Principe de base|modes]] de fonctionnement.((On parle parfois d'éditeur //modal//.)) Selon le mode sélectionné, les touches déclenchent différentes actions : 
 +  Le mode **//command//** (mode par défaut) permet d'entrer des commandes pour interagir avec le textele fichier ou l'application. 
 +  Le mode **//insert//** permet de saisir du texte. 
 +  * Le mode **//replace//** est proche du mode //insert// mais écrase le texte existant. 
 +  * Le mode **//visual//** permet la sélection et la modification globale de texte.
  
-Pour que **Vim** soit l'éditeur par défaut pour l’éditions de tout fichier de configurationil est intéressant d'exécuter :+Pour que **Vim** soit l'éditeur par défaut du [[:shell]]exécuter la commande ''select-editor'' :
 <code bash> <code bash>
 select-editor  select-editor 
Ligne 30: Ligne 34:
 Choose 1-4 [1]: 2 Choose 1-4 [1]: 2
 </code> </code>
-et de le faire avec //sudo// pour que ce soit aussi le cas quand on éditer des fichiers système, par exemple quand on fait un //sudo crontab -e// ((cf. [[:cron|CRON]] pour plus d'infos)+Lancer aussi la commande avec ''[[:sudo]]'' pour que **Vim** soit aussi l'éditeur par défaut avec les [[:permissions administrateur]] (par exemple avec la commande ''sudo crontab -e''((cf. [[:CRON]] pour plus d'infos))) : 
 +  sudo select-editor
  
 ===== Installation ====== ===== Installation ======
  
-Par défaut, votre système a une version basique de **Vim**, procurée par le paquet **vim-tiny**, mais n'offrant pas toutes les possibilités de cet éditeur.+<note> 
 +Une version basique de **Vim** est installée par défaut sur Ubuntufournie par le [[:paquet]] ''[[apt>vim-tiny]]''. Celle-ci n'implémente pas les fonctionnalités complètes de l'éditeur. 
 +</note>
  
 Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>vim]]''. Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] ''[[apt>vim]]''.
Ligne 40: Ligne 47:
 Si vous souhaitez  une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**. Si vous souhaitez  une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**.
  
-**[[:neovim]]** est un //fork// **Vim** plus orienté [[:IDE]].+**[[:neovim]]** est un //fork// de **Vim** plus orienté [[:IDE]].
  
 ===== Utilisation ====== ===== Utilisation ======
Ligne 52: Ligne 59:
  
 (ou pour la version graphique, lancez l'application ''gvimtutor'' avec la combinaison de touches ''Alt''+''F2'' ou dans le terminal) (ou pour la version graphique, lancez l'application ''gvimtutor'' avec la combinaison de touches ''Alt''+''F2'' ou dans le terminal)
- 
  
 ==== Principe de base ==== ==== Principe de base ====
Ligne 66: Ligne 72:
  
 === Commandes de base === === Commandes de base ===
 +
 +FIXME il faudrait différentier (ou expliquer) les commandes et les raccourcis clavier svp !
  
 ^ Exemples ^ Action  ^ ^ Exemples ^ Action  ^
Ligne 86: Ligne 94:
 | ''dd''    | Couper la ligne (4**dd** = 4 lignes) | | ''dd''    | Couper la ligne (4**dd** = 4 lignes) |
 | ''p''     | Coller après (**P** = insérer avant) | | ''p''     | Coller après (**P** = insérer avant) |
- ''x''    | Effacer le caractère | +| ''x''     | Effacer le caractère | 
- ''dw''   | Effacer le texte jusqu'à la fin du mot | +| ''dw''    | Effacer le texte jusqu'à la fin du mot | 
- ''diw''  | Effacer le mot sous le curseur |+| ''diw''   | Effacer le mot sous le curseur |
  
 === Recherche / remplacement === === Recherche / remplacement ===
Ligne 105: Ligne 113:
  
 ^ Exemples ^ Action ^ ^ Exemples ^ Action ^
- **<control-w>-s**  | Diviser horizontalement | +''Ctrl''+''w'' puis ''s'' | Diviser horizontalement | 
- **<control-w>-v**  | Diviser verticalement | +''Ctrl''+''w'' puis ''v'' | Diviser verticalement | 
- **<control-w>-w**  | Passer à la fenêtre suivante | +''Ctrl''+''w'' puis ''w'' | Passer à la fenêtre suivante | 
- **<control-w>-n**  | Ouvrir un fichier vierge dans une nouvelle fenêtre | +''Ctrl''+''w'' puis ''n'' | Ouvrir un fichier vierge dans une nouvelle fenêtre | 
-**: tabnew //nom_fichier// ** | Ouvrir le fichier //nom_fichier// dans un onglet | +'': tabnew //nom_fichier//'' | Ouvrir le fichier ''//nom_fichier//'' dans un onglet | 
- **<control-w>-q**  | Fermer la fenêtre |+''Ctrl''+''w'' puis ''q'' | Fermer la fenêtre |
  
 === Programmation en C === === Programmation en C ===
Ligne 125: Ligne 133:
 Vous pouvez comparer le contenu de deux fichiers en lançant : Vous pouvez comparer le contenu de deux fichiers en lançant :
 <code>vimdiff fichier1 fichier2</code> <code>vimdiff fichier1 fichier2</code>
-vimdiff peut être remplacé par vim -d\\+vimdiff peut être remplacé par ''vim -d''\\
 Si vous êtes déjà dans vim en édition sur le ''fichier1'' : Si vous êtes déjà dans vim en édition sur le ''fichier1'' :
 <code>:vert diffsplit fichier2</code> <code>:vert diffsplit fichier2</code>
Ligne 285: Ligne 293:
   * [[https://touticphoto.fr/assistance-informatique/30-editeur-de-texte-vim|Quelques notes de prises en main sur Vim]]   * [[https://touticphoto.fr/assistance-informatique/30-editeur-de-texte-vim|Quelques notes de prises en main sur Vim]]
   * [[https://github.com/dpelle/vim-Grammalecte|Plugin Grammalecte]] étendre les fonctionnalités de VIM avec un Correcteur grammatical dédié à la langue française.   * [[https://github.com/dpelle/vim-Grammalecte|Plugin Grammalecte]] étendre les fonctionnalités de VIM avec un Correcteur grammatical dédié à la langue française.
 +  * [[:neovim]] fork de vim
 +  * [[:helix]] variante de vim, avec des commandes similaires mais orientées sélection pour mieux appréhender les modifications.
  
 ---- ----
  
 //Contributeurs : [[:utilisateurs:YoBoY|YoBoY]], [[:utilisateurs:Mr_Djez|Mr_Djez]], [[:utilisateurs:bcag2|bcag2]]// //Contributeurs : [[:utilisateurs:YoBoY|YoBoY]], [[:utilisateurs:Mr_Djez|Mr_Djez]], [[:utilisateurs:bcag2|bcag2]]//