diff --git a/HowtoVim.md b/HowtoVim.md index 49ef0be8..9d1e6d6e 100644 --- a/HowtoVim.md +++ b/HowtoVim.md @@ -3,32 +3,132 @@ categories: wip title: Howto Vim ... -* Documentation : -* Vim casts : +Un des éditeur de texte de prédilection pour administrateur système. Vim est une couche de Vi apportant de nombreuses possibilités de personnalisation. +Ses début dans les années 90, il est encore très apprécié de par sa rapidité et que son code source soient encore (et restera) libre. Merci à [Bram Moolenaar](https://fr.wikipedia.org/wiki/Bram_Moolenaar) qui est l'initiateur de ce logiciel. + +## Premiers pas + +Rien de plus simple pour l'installer et le définir en tant qu'éditeur par défaut : ~~~ -# apt install vim -$ vimtutor -# update-alternatives --config editor +sudo apt install vim +vimtutor +sudo update-alternatives --config editor ~~~ -## Mode sed +En cas de besoin pour obtenir de l'aide en ligne de commande : + +~~~{.bash} +:help = "avoir de l'aide sur une commande" +~~~ + +### Racourcis + +Nous listons ci-dessous les commandes de bases : + + +~~~{.bash} +i = "passer en mode «Insert» - à gauche du curseur" +I = "passer en mode «Insert» - en début de phrase" +a` = "passer en mode «Insert» - à droite du curseur" +A = "passer en mode «Insert» - en fin de phrase" +Échap = "passer en mode «Edit» – sauf si vous avez le nouveau MacBook Pro sans cette touche ;)" +:q! = "quitter sans sauvegarder" +:wq ou :x = "sauvegarder et quitter" +:x = +dd = "supprimer (et copier) une ligne - ajoute la ligne dans le buffer" +v = "sélection du texte à partir du curseur" +V = "sélection du texte par ligne" +y = "copier - ajoute la sélection dans le buffer" +Y = "copier la ligne - ajoute dans le buffer" +p = "coller le buffer" +x ou . = "effacer le caractère à droite" +X = "effacer le caractère à gauche" +u = "undo" +vc = "change word - change le mot après l'emplacement du curseur" +C-r = "redo" +~~~ + +## Commandes avancées + +### Mode "Edit" + +~~~{.bash} +r = "remplacer un caractère" +c[0|^|w|$|G] = "changer (supprime et passe en mode insertion)" +d = "supprimer" +~ = "inverser la casse d'un caractère" +:set paste` / `:set nopaste = "passer en mode copier/coller (et revenir)" +~~~ + +paramètres possibles pour changer/supprimer : + +~~~{.bash} +0 = "début de ligne" +^ = "début de ligne (sauf caractères invisibles)" +w = "fin du mot" +$ = "fin de ligne" +G = "fin du fichier" +~~~ + +afficher les caractères invisibles : + +~~~{.bash} +:set list +~~~ + +coloration syntaxique : + +~~~{.bash} +:syntax on +~~~ + +modifier la couleur pour *desert* : + +~~~{.bash} +:color desert +~~~ + +### [Dé]Commenter du code + +Pour commenter, suivre la liste des commandes suivante : + +~~~{.bash} +C-v = "Mode «Visual» activé" + = "Choisir la zone concernée" +I = "Insérer en début de ligne - active le mode «Insert»" + = "Caractère du commentaire en question - selon langage" +Echap = "Quitter le mode «Insert»" +~~~ + +Pour décomenter, suivre la liste des commandes suivante : + +~~~{.bash} +C-v = "Mode «Visual» activé" + = "Choisir la zone concernée" +x = "Supprimer le caractère" +~~~ + + * Taper des caractères UTF8 + +~~~{.bash} +CTRL-V u XXXX = "où `XXXX` est le code du caractère UTF8" +~~~ + + * Taper des caractères ASCII + +~~~{.bash} +Ctrl+v NNN = "où `NNN` est le code du caractère UTF8" +~~~ + + * Mode sed Rechercher sans la casse : **/\\cfoo** Appliquer une commande à une selection de lignes : **:42,51!sed s/foo/bar/ FICHIER** -## Astuces -### Taper des caractères UTF8 - -Ctrl+v u XXXX où XXXX est le code Unicode du caractère - -### Taper des caractères ASCII - -Ctrl+v NNN où NNN est le numéro ASCII du caractère - -## Scripting + * Scripting Exécuter automatiquement des commandes : @@ -43,8 +143,15 @@ $ vim -s script.txt FICHIER $ vim -w script.txt FICHIER2 ~~~ -#Vimdiff + * Vimdiff ~~~{.bash} C-w C-w : "Changer de colonne du fichier comparé" ~~~ + +## Webografie + +* [Documentation](http://www.vim.org/docs.php) +* [Vim casts]( -* -* -* - -## Help - -~~~{.bash} -:help = "avoir de l'aide sur une commande" -~~~ - -## Commandes de base - -~~~{.bash} -i = "passer en mode «Insert» - à gauche du curseur" -I = "passer en mode «Insert» - en début de phrase" -a` = "passer en mode «Insert» - à droite du curseur" -A = "passer en mode «Insert» - en fin de phrase" -Échap = "passer en mode «Edit» – sauf si vous avez le nouveau MacBook Pro sans cette touche ;)" -:q! = "quitter sans sauvegarder" -:wq ou :x = "sauvegarder et quitter" -:x = -dd = "supprimer (et copier) une ligne - ajoute la ligne dans le buffer" -v = "sélection du texte à partir du curseur" -V = "sélection du texte par ligne" -y = "copier - ajoute la sélection dans le buffer" -Y = "copier la ligne - ajoute dans le buffer" -p = "coller le buffer" -x ou . = "effacer le caractère à droite" -X = "effacer le caractère à gauche" -u = "undo" -vc = "change word - change le mot après l'emplacement du curseur" -C-r = "redo" -~~~ - -## Commandes avancées - -### Mode "Insert" - -~~~{.bash} -CTRL-V u XXXX = "où `XXXX` est le code du caractère UTF8" -~~~ - -### Mode "Edit" - -~~~{.bash} -r = "remplacer un caractère" -c[0|^|w|$|G] = "changer (supprime et passe en mode insertion)" -d = "supprimer" -~ = "inverser la casse d'un caractère" -:set paste` / `:set nopaste = "passer en mode copier/coller (et revenir)" -~~~ - -paramètres possibles pour changer/supprimer : - -~~~{.bash} -0 = "début de ligne" -^ = "début de ligne (sauf caractères invisibles)" -w = "fin du mot" -$ = "fin de ligne" -G = "fin du fichier" -~~~ - -afficher les caractères invisibles : - -~~~{.bash} -:set list -~~~ - -coloration syntaxique : - -~~~{.bash} -:syntax on -~~~ - -modifier la couleur pour *desert* : - -~~~{.bash} -:color desert -~~~ - -### [Dé]Commenter du code - -Pour commenter, suivre la liste des commandes suivante : - -~~~{.bash} -C-v = "Mode «Visual» activé" - = "Choisir la zone concernée" -I = "Insérer en début de ligne - active le mode «Insert»" - = "Caractère du commentaire en question - selon langage" -Echap = "Quitter le mode «Insert»" -~~~ - -Pour décomenter, suivre la liste des commandes suivante : - -~~~{.bash} -C-v = "Mode «Visual» activé" - = "Choisir la zone concernée" -x = "Supprimer le caractère" -~~~ \ No newline at end of file