Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:editeurs:vim:vim [03/07/2014 00:06] 127.0.0.1 modification externe |
doc:editeurs:vim:vim [21/07/2019 03:43] smolski [Les modes] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : vim | * Objet : vim | ||
- | * Niveau requis : {{tag>débutant}} | + | * Niveau requis : {{tag>débutant avisé}} |
* Commentaires : //Administrer la rédaction des fichiers de configurations, et plus encore, les pages web et autres... // | * Commentaires : //Administrer la rédaction des fichiers de configurations, et plus encore, les pages web et autres... // | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-compléter}} | + | * Suivi : {{tag>à-compléter}} |
- | * Création par smolski 10-07-2009 19:37:07 | + | * Création par [[user>smolski]] le 10-07-2009 19:37:07 |
- | * Testé par smolski le 10-07-2009 19:37:07 | + | * Testé par [[user>smolski]] le 10-07-2009 19:37:07 |
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1577 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=1577 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | **Nota :** | ||
- | |||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 23: | Ligne 20: | ||
Ben, comme d'habitude : | Ben, comme d'habitude : | ||
- | <code root>apt-get install vim</code> | + | <code root>apt-get update && apt-get install vim</code> |
Cela installe 2 paquets. \\ | Cela installe 2 paquets. \\ | ||
Ligne 29: | Ligne 26: | ||
Pour un vim complet : | Pour un vim complet : | ||
- | <code root>apt-get install vim-full exuberant-ctags</code> | + | <code root>apt-get update && apt-get install vim-gtk exuberant-ctags</code> |
==== vim-nox ==== | ==== vim-nox ==== | ||
Voilà un vim débarrassé de tout ce qui se rapporte au serveurX ! | Voilà un vim débarrassé de tout ce qui se rapporte au serveurX ! | ||
- | <code root>apt-get install vim-nox vim-scripts exuberant-ctags</code> | + | <code root>apt-get update && apt-get install vim-nox vim-scripts exuberant-ctags</code> |
Et vous pouvez le mettre en éditeur par défaut pour tous avec la commande : | Et vous pouvez le mettre en éditeur par défaut pour tous avec la commande : | ||
<code root>update-alternatives --set editor /usr/bin/vim.nox</code> | <code root>update-alternatives --set editor /usr/bin/vim.nox</code> | ||
- | Trôôôp cool... Merci captnfab ! voir tuto : | + | Trôôôp cool... Merci de ces indications captnfab ! \\ |
- | http://wiki.chezlefab.net/tuto_nix/installation_squeeze#installation_du_meilleur_ami_du_debianiste | + | ===== Vimtutor ===== |
- | //droit devant et vent debout, le 'pitaine là...// | + | Les débutants rêvent d'un tuto avec des exemples à tester, vim l'a fait ! |
- | ===== Les modes ===== | + | Comme le dit **Melodie** : \\ |
+ | //- Le meilleur des tutoriels est déjà là près de vous... Et vous savez quoi... il s'est installé d'office sur vot' pc avec votre install de //**vim**//((sauf avec vim-tiny, mais qui voudrait n'installer que le vim-tiny, franchement ;-) )) via le paquet //''vim-runtime''// !((La commande qui l'indique : <code user>dpkg -L vim-runtime |grep vimtutor</code>))\\ | ||
+ | - Noooooon ?\\ | ||
+ | - Et si mon gars, d'office dans l'office... Tout prêt à vous servir !// | ||
- | Vim se gère sous 3 modes : le mode normal, le mode saisie et le mode commande. | + | Pour le voir, dans la console saisissez et validez : |
+ | <code user>vimtutor</code> | ||
- | ==== Le mode normal ==== | + | et... laissez-vous guider !\\ |
+ | Vous vous retrouverez sur une page en **vim** que vous pouvez modifier en suivant les exercices de base proposés. | ||
- | Permet le déplacement par les flèches du clavier, la suppression... Mais pour écrire et remplacer, il faut passer en mode saisi par la touche ''i'' ou sur la touche ''Inser'' | + | //De plus... c'est en français, ouaiiiiiiiiiiiiiiiiiiiiis ! :-D \\ |
+ | À consommer sans modération....// | ||
- | ==== Le mode saisie ==== | + | Ou faites des essais en créant des répertoires avec [[:doc:systeme:mkdir]] et des fichiers avec [[:doc:systeme:touch]], puis lancez-vous pour écrire, vous déplacer, copier, supprimer... tout en ligne de commande **vim**. |
- | Le mode saisie s'obtient par la touche ''i'' (ou la touche ''Inser''). | ||
- | Il permet d'écrire dans le fichier ouvert : | + | ===== Les modes ===== |
+ | Vim se gère sous 3 modes : le mode normal, le mode saisie et le mode commande. | ||
+ | |||
+ | ==== Le mode commande simple ==== | ||
+ | Après l'ouverture d'un fichier : | ||
<code>vim /chemin/de/votre/fichier</code> | <code>vim /chemin/de/votre/fichier</code> | ||
- | À l'ouverture, nous pouvons nous déplacer dans le texte du fichier avec les flèches du clavier où avec les lettres du clavier ''g h j k l'' jusqu'à l'endroit où nous désirons intervenir. | + | Permet le déplacement par les flèches du clavier, la suppression... Mais pour écrire et remplacer, il faut passer en mode saisi par la touche <key>i</key> ou sur la touche <key>Inser</key> |
+ | À l'ouverture, nous pouvons nous déplacer dans le texte du fichier avec les flèches du clavier où avec les lettres du clavier <key>g</key> <key>h</key> <key>j</key> <key>k</key> <key>l</key> jusqu'à l'endroit où nous désirons intervenir. | ||
- | ==== Le mode commande ==== | + | * La touche <key>h</key> pour vous déplacer vers la gauche. |
+ | * La touche <key>l</key> pour vous déplacer vers la droite. | ||
+ | * La touche <key>j</key> pour vous déplacer vers le bas. | ||
+ | * La touche <key>k</key> pour vous déplacer vers le haut. | ||
+ | * La touche <key>g</key> pour vous déplacer de page en page | ||
+ | * ''G'' pour aller à la dernière ligne | ||
+ | * ''gg'' pour aller à la première ligne | ||
+ | * ''2g'' pour aller à la ligne n°2 ; ''3g'' pour aller à la ligne n°3, etc,. | ||
+ | |||
+ | On peut aussi se déplacer avec les flèches ←↓↑→ | ||
+ | |||
+ | Le mode commande "simple" c'est-à-dire le mode qui permet de lancer des commandes sans avoir à appuyer sur la touche <key>return</key> permet d'utiliser des commandes pour se déplacer, mais aussi pour passer en ''mode saisie'' ou en mode commande ''ex'' | ||
+ | |||
+ | ==== Le mode saisie ==== | ||
+ | |||
+ | Le mode saisie s'obtient par la touche <key>i</key> (ou la touche <key>Inser</key>). | ||
+ | |||
+ | ==== Le mode commande ex==== | ||
Le mode commande permet d'enregistrer ce que l'on a écrit/modifié, mais aussi de quitter vim, ou de copier/coller, ou d'effacer, tout ça avec plusieurs options disponibles et plus encore... A découvrir. | Le mode commande permet d'enregistrer ce que l'on a écrit/modifié, mais aussi de quitter vim, ou de copier/coller, ou d'effacer, tout ça avec plusieurs options disponibles et plus encore... A découvrir. | ||
Ligne 72: | Ligne 97: | ||
Attention, en mode commande, les flèches du clavier ne permettent plus les déplacements habituels dans le texte. Il faut utiliser les codes de placement du curseur pour la saisie. \\ | Attention, en mode commande, les flèches du clavier ne permettent plus les déplacements habituels dans le texte. Il faut utiliser les codes de placement du curseur pour la saisie. \\ | ||
- | Utilisez les lettres du clavier ''g h j k l'' ! | + | Utilisez les lettres du clavier <key>g</key> <key>h</key> <key>j</key> <key>k</key> <key>l</key> ! |
+ | |||
+ | Pour continuer l'action précédente, taper sur :\\ | ||
+ | |||
+ | 1 - <key>Échap</key> pour revenir en mode commande,\\ | ||
+ | |||
+ | 2 - puis <key>:</key> <key>w</key> <key>Entrée</key> pour enregistrer\\ | ||
+ | |||
+ | 3 - et <key>:</key> <key>q</key> <key>Entrée</key> pour quitter wim.\\ | ||
- | Pour continuer l'action précédente, taper sur : | ||
- | - ''Échap'' pour revenir en mode commande, | ||
- | - puis '':w'' pour enregistrer | ||
- | - et '':q'' pour quitter wim. | ||
Et voilà les modifications faites. | Et voilà les modifications faites. | ||
+ | |||
+ | <note tip> | ||
+ | Les commandes précédées de deux points sont en fait des commandes de l'éditeur ''ex''. vi et ex sont deux interfaces distinctes du même logiciel d'édition de texte. Et à sa base ''vim'' c'est vi ! | ||
+ | |||
+ | Alors que vi est une interface orientée écran, ex est une interface orientée ligne. Toutes les commandes ex sont disponibles à partir de l'éditeur vi. Lorsqu'on appuie sur la touche ":", on passe en fait à l'interface ex (orientée ligne). Cela vous permet d'exécuter de nombreuses commandes de manipulation de fichiers sans quitter vi. | ||
+ | |||
+ | * Voir : | ||
+ | - http://archive.oreilly.com/pub/a/linux/excerpts/9780596529833/the-vi-ex-and-vim-editors.html | ||
+ | - http://www.computerhope.com/unix/uex.htm | ||
+ | </note> | ||
===== Ouvrir 2 fichiers ===== | ===== Ouvrir 2 fichiers ===== | ||
Ligne 85: | Ligne 124: | ||
<code user>vim fichier1 fichier2</code> | <code user>vim fichier1 fichier2</code> | ||
- | On ira d'un fichier à un autre en tapant les touches du clavier '':previous'' et '':next'' | + | On ira d'un fichier à un autre en tapant les touches du clavier <key>:</key> + <key>n</key> <key>Entrée</key> et <key>:</key> + <key>Shift</key> + <key>n</key> <key>Entrée</key> |
==== Ouvrir 2 fichiers dans 1 terminal ==== | ==== Ouvrir 2 fichiers dans 1 terminal ==== | ||
- | Cela permet de copier de l'un à l'autre. | + | Cela permet de copier en utilisant les commandes vim de l'un à l'autre. |
<code user>vim fichier1</code> | <code user>vim fichier1</code> | ||
- | Puis en mode commande((tapez sur Echap)) : | + | Puis en mode commande((tapez avant tout sur <key>Echap</key>)) : |
:split fichier2 | :split fichier2 | ||
- | Et on ira d'un fichier à un autre par le mode commande en tapant 2 fois la combinaison de touches : | + | Et on ira d'un fichier à un autre par le mode commande en tapant 2 fois la touche w tout en gardant la touche <key>Ctrl</key> appuyée :\\ |
- | Ctrl w | + | |
+ | <key>Ctrl</key> + <key>w</key> + <key>w</key> | ||
+ | |||
+ | ==== split 1 fichier ==== | ||
+ | |||
+ | Vous éditez d'abord le fichier, puis vous tapez la commande : | ||
+ | :split | ||
+ | |||
+ | Ce même fichier s'ouvre alors sur 2 fenêtres ! \\ | ||
+ | Par exemple, on peut lire les lignes de variables dans une fenêtre et leur application dans l’autre. | ||
+ | |||
+ | Pour changer de fenêtre la même procédure s'applique : | ||
+ | <key>Ctrl</key> + <key>w</key> + <key>w</key> | ||
+ | |||
+ | ==== Fermeture ==== | ||
+ | |||
+ | * La commande :q quitte entièrement vim | ||
+ | * La commande :close quitte la fenêtre active en conservant vim ouvert. | ||
+ | * La commande :only laisse ouverte la fenêtre active et ferme toutes les autres avec le message habituel si vous n'avez pas enregistré les modifications. | ||
+ | |||
+ | |||
+ | ==== Fenêtres-dimensions ==== | ||
+ | |||
+ | Ouvrir par exemple une fenêtre de 10 lignes se fait par la commande : | ||
+ | :10split fichier1 | ||
+ | |||
+ | Pour modifier cette taille confortablement vous pouvez activer la souris : | ||
+ | :set mouse=a | ||
+ | |||
+ | et manipuler maintenant les barres de séparation avec le pointeur. | ||
+ | |||
+ | === split vertical === | ||
+ | |||
+ | split ouvre d'office des fenêtres partagées horizontalement. \\ | ||
+ | Pour avoir des fenêtres partagées verticalement, la commande est //vsplit//, soit : | ||
+ | :vsplit fichier2 | ||
+ | |||
+ | //Bingo !// LOL | ||
===== vimdiff ===== | ===== vimdiff ===== | ||
Ligne 144: | Ligne 220: | ||
:wq | :wq | ||
- | Si au contraire on veut modifier à l'inverse, il faut se placer dans la fenêtre diff2 par la combinaison clavier tapée deux fois : | + | Si au contraire on veut modifier à l'inverse, il faut se placer dans la fenêtre diff2 par la combinaison clavier tapée deux fois :\\ |
- | Ctrl w | + | |
- | Ctrl w | + | <key>Ctrl</key> + <key>w</key> |
+ | |||
+ | <key>Ctrl</key> + <key>w</key> | ||
Ce qui nous place dans la fenêtre suivante et refaire la commande mais à l'inverse : | Ce qui nous place dans la fenêtre suivante et refaire la commande mais à l'inverse : | ||
Ligne 176: | Ligne 254: | ||
===== Vim - La navigation ===== | ===== Vim - La navigation ===== | ||
+ | |||
+ | Pour connaître le chemin du fichier en cours d'édition, utiliser le raccourci :\\ | ||
+ | |||
+ | <key>Ctrl</key> + <key>g</key> | ||
+ | |||
Naviguer dans les répertoires sans quitter la commande vim | Naviguer dans les répertoires sans quitter la commande vim | ||
Ligne 185: | Ligne 268: | ||
* http://www.commentcamarche.net/faq/7961-petit-tuto-sur-vi-vim | * http://www.commentcamarche.net/faq/7961-petit-tuto-sur-vi-vim | ||
+ | |||
+ | Traduction de toute la documentation de vim dans langue de Molière (un boulot admirable ! :-D ) : | ||
+ | * http://cfennajoui.net/vim/index.php?p_menu=presentation | ||
//Un formidable outil détaillant les principales commandes vim, venu tout droit du //**captnfab**// !// :-) | //Un formidable outil détaillant les principales commandes vim, venu tout droit du //**captnfab**// !// :-) | ||
Ligne 196: | Ligne 282: | ||
Le wiki français non officiel de vim : | Le wiki français non officiel de vim : | ||
* http://vim-fr.org/index.php/Accueil | * http://vim-fr.org/index.php/Accueil | ||
+ | |||
===== TRAVAUX PRATIQUES ===== | ===== TRAVAUX PRATIQUES ===== | ||
Ligne 215: | Ligne 302: | ||
Et s'il n'y a pas de texte..? | Et s'il n'y a pas de texte..? | ||
- | Bigre, taper sur la lettre i du clavier (pour insérer) et écrivez un texte court, beau, plaisant à voir et à modifier, un texte à la Prevert, une poësie libre de deux trois lignes en quelques mots... | + | Bigre, taper sur la lettre <key>i</key> du clavier (pour insérer) et écrivez un texte court, beau, plaisant à voir et à modifier, un texte à la Prevert, une poësie libre de deux trois lignes en quelques mots... |
Ou plus prosaïquement, __la copie__ d'un fichier de configuration, genre fstab ou .bashrc ou encore le fichier default de site-availables... genre... | Ou plus prosaïquement, __la copie__ d'un fichier de configuration, genre fstab ou .bashrc ou encore le fichier default de site-availables... genre... | ||
- | En mode commande (tapez echap pour y parvenir), déplacez le curseur au début de la première ligne à intervenir (copier, déplacer, supprimer... voir les raccourcis commandes vim), tapez la lettre "v" du clavier et déplacez le curseur jusqu'au dernier mot où vous désirez intervenir... | + | En mode commande (tapez <key>echap</key> pour y parvenir), déplacez le curseur au début de la première ligne à intervenir (copier, déplacer, supprimer... voir les raccourcis commandes vim), tapez la lettre <key>v</key> du clavier et déplacez le curseur jusqu'au dernier mot où vous désirez intervenir... |
Yop, la sélection s'opère sous nos yeux même ! Reste à appliquer ce que nous désirons faire. | Yop, la sélection s'opère sous nos yeux même ! Reste à appliquer ce que nous désirons faire. | ||
Ligne 249: | Ligne 336: | ||
Il me faut d'abord copier ce paragraphe puis le coller dans le même fichier (c'est au plus simple), et changer la route **sitevideo** en **site-resto** cool. | Il me faut d'abord copier ce paragraphe puis le coller dans le même fichier (c'est au plus simple), et changer la route **sitevideo** en **site-resto** cool. | ||
- | En mode commande (taper sur //Echap// pour vous en assurer...) taper la lettre : | + | En mode commande (taper sur <key>Echap</key> pour vous en assurer...) taper la lettre : <key>v</key> |
- | v | + | |
- | et appliquez le **TP-01** pour sélectionner tout le paragraphe taper : | + | et appliquez le **TP-01** pour sélectionner tout le paragraphe taper : <key>y</key> |
- | y | + | |
- | Et pour le coller après, déplacer le curseur à l'endroit où vous voulez insérer le nouvel alias et taper | + | Et pour le coller après, déplacer le curseur à l'endroit où vous voulez insérer le nouvel alias et taper <key>Shift</key> + <key>p</key> |
- | Shift (Majuscule) p | + | |
- | Toujours en mode commande, positionner le curseur sur le A de //Alias// du début de ce paragraphe copié (utiliser les lettres ghjkl commandes identiques aux flèches du clavier pour ce faire... hi hi hi). | + | Toujours en mode commande, positionner le curseur sur le A de //Alias// du début de ce paragraphe copié\\ |
+ | (utiliser les lettres <key>g</key> <key>h</key> <key>j</key> <key>k</key> <key>l</key> commandes identiques aux flèches du clavier pour ce faire... hi hi hi). | ||
- | Taper la lettre **v** et selectionner tout le paragraphe au clavier (voir **TP-01**, encore...) | + | Taper la lettre <key>v</key> et sélectionner tout le paragraphe au clavier (voir **TP-01**, encore...) |
Lors donc, taper la commande | Lors donc, taper la commande | ||
Ligne 283: | Ligne 368: | ||
==== TP-03 Insertion de ligne ==== | ==== TP-03 Insertion de ligne ==== | ||
- | Pour insérer une ligne suivant la ligne en cours, depuis le mode Commande de vim (tapez //Echappe// d'abord pour en être sûr) tapez : | + | Pour insérer une ligne suivant la ligne en cours, depuis le mode Commande de vim (tapez <key>Echap</key> d'abord pour en être sûr) tapez <key>o</key> |
- | o | + | |
Vous voilà en mode Insersion dans une ligne vierge ajoutée. \\ | Vous voilà en mode Insersion dans une ligne vierge ajoutée. \\ | ||
- | Tapez la touche "Echappe" pour revenir en mode Commande. | + | Tapez la touche <key>Echap</key> pour revenir en mode Commande. |
- | ====== Astuces ====== | + | ===== Astuces ===== |
- | + | ||
- | ==== Vimtutor ==== | + | |
- | + | ||
- | Enfin, comme le dit Melodie : | + | |
- | + | ||
- | Pour finir, le meilleur des tutoriels est déjà là près de vous... Et vous savez quoi... il s'est installé d'office sur vot' pc avec votre install de vim-nox !\\ | + | |
- | //- Noooooon ?\\ | + | |
- | - Et si mon gars, d'office dans l'office... Tout prêt à vous servir !// | + | |
- | + | ||
- | Pour le voir, dans la console sonnez... heu saisissez : | + | |
- | <code user>vimtutor</code> | + | |
- | et... laissez-vous guider !\\ | + | |
- | Vous vous retrouverez sur une page en **vim** que vous pouvez modifier en suivant les exercices de base proposés. | + | |
- | + | ||
- | //De plus... c'est en français, ouaiiiiiiiiiiiiiiiiiiiiis ! :-D \\ | + | |
- | À consommer sans modération....// | + | |
- | + | ||
- | Ou faites des essais en créant des répertoires avec [[:doc:systeme:mkdir]] et des fichiers avec [[:doc:systeme:touch]], puis lancez-vous pour écrire, vous déplacer, copier, supprimer... tout en ligne de commande **vim**. | + | |
==== Live ==== | ==== Live ==== | ||
Ligne 350: | Ligne 416: | ||
* [s pour le précédent | * [s pour le précédent | ||
+ | Lien de vimrc configuré grave : | ||
+ | * [[utilisateurs:captnfab:config:vimrc]] | ||
===== Conclusion ===== | ===== Conclusion ===== | ||
Ligne 356: | Ligne 424: | ||
===== Liens utiles ===== | ===== Liens utiles ===== | ||
- | * http://linux-france.unixtech.be/article/appli/vi/vim/ | + | * http://www.linux-france.org/article/appli/vi/vim/ |
* http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html | * http://www.yolinux.com/TUTORIALS/LinuxTutorialAdvanced_vi.html |