--- categories: wip title: Howto Vim ... 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 : ~~~ sudo apt install vim vimtutor sudo update-alternatives --config editor ~~~ En cas de besoin pour obtenir de l'aide en ligne de commande : ~~~{.bash} :help ~~~ ### 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" 0 = "début de ligne" ^ = "début de ligne (sauf caractères invisibles)" w = "fin du mot" $ = "fin de ligne" G = "fin du fichier" 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)" ~~~ ## Commandes avancées * afficher les caractères invisibles : ~~~{.bash} :set list ~~~ * coloration syntaxique : ~~~{.bash} :syntax on ~~~ * modifier la couleur pour *desert* : ~~~{.bash} :color desert ~~~ * Commenter du code selon la procédure 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** * Scripting Exécuter automatiquement des commandes : ~~~ $ vim ":retab" "+wq" ~~~ Écrire des commandes dans un script puis les rejouer : ~~~ $ vim -s script.txt FICHIER $ vim -w script.txt FICHIER2 ~~~ * Vimdiff ~~~{.bash} C-w C-w : "Changer de colonne du fichier comparé" ~~~ ## Webografie * [Documentation sur le site officiel](http://www.vim.org/docs.php) * [Vim casts](