{"id":346,"date":"2010-04-29T10:34:13","date_gmt":"2010-04-29T15:34:13","guid":{"rendered":"http:\/\/gruson.name\/blog\/?p=346"},"modified":"2010-04-29T13:49:00","modified_gmt":"2010-04-29T18:49:00","slug":"vim-decouverte-et-plaisir","status":"publish","type":"post","link":"http:\/\/gruson.name\/weblog\/2010\/04\/29\/vim-decouverte-et-plaisir\/","title":{"rendered":"Vim, d\u00e9couverte et plaisir."},"content":{"rendered":"<p>Il est possible que vous ne le connaissiez pas, m\u00eame s&#8217;il est tr\u00e8s connu parmis les informaticiens et d\u00e9veloppeurs, mais il existe un outil pour \u00e9diter le texte qui est g\u00e9nial : Vim.<\/p>\n<p>Vim est en fait la version am\u00e9lior\u00e9e de VI (vi Meilleur en fait :-) ) et existe depuis au moins, euh 30- 40 ans ?<\/p>\n<p>De prime abord Vim m&#8217;int\u00e9ressait car il est d\u00e9crit par de nombreux d\u00e9veloppeurs, dans des articles de blog, comme \u00e9tant un outil excellent de travail sur des fichiers, avec une productivit\u00e9 et une ergonomie l\u00e9gendaire. Il y avait aussi le fameux troll Vim\/Emacs (pas essay\u00e9 celui-l\u00e0 encore).<\/p>\n<p>Reste qu&#8217;une lecture rapide des articles d&#8217;aide sur le web donnait un peu le vertige. Un tas de commandes absconses permettait le d\u00e9placement, le remplacement, l&#8217;indentation, la sauvegarde etc.<\/p>\n<p>Il manquait comment souvent le moteur de toute chose, la motivation. et c&#8217;est dans la recherche d&#8217;un bon \u00e9diteur Rails sou linux que finalement j&#8217;en suis venu \u00e0 tester Vim un peu plus s\u00e9rieusement. Le but \u00e9tait de retrouver une efficacit\u00e9 dans l&#8217;\u00e9dition de texte.<\/p>\n<p>Sur MacOS il existe tout un tas de raccourcis qui permettent d&#8217;acc\u00e9l\u00e9rer l&#8217;\u00e9dition dans tous les logiciels. Command fl\u00e8che, Contr\u00f4le fl\u00e8che permettent de se d\u00e9placer rapidement dans les lignes et les phrases. sous Linux la seule astuce que j&#8217;ai retrouv\u00e9 est contr\u00f4le fl\u00e8che pour se d\u00e9placer de mot en mot. Pas grand chose donc.<\/p>\n<p>Alors voil\u00e0 arm\u00e9 de petites fiches glan\u00e9es sur le Web je commence s\u00e9rieusement.<\/p>\n<p>D&#8217;abord ce qui semble un peu inutile mais qui est diablement important, il existe trois modes.<\/p>\n<ul>\n<li> Le mode insertion, pour &#8230; ins\u00e9rer, principalement on tape le texte dedans.<\/li>\n<li> Le mode normal, pour se d\u00e9placer mais aussi pour des op\u00e9rations d&#8217;\u00e9ditions simples voire complexes, effacer des caract\u00e8rs\/mots\/phrases, indenter, copier coller etc.<\/li>\n<li> Le mode visuel pour s\u00e9lectionner plusieurs mots\/phrases etc.<\/li>\n<\/ul>\n<p>Passer du mode normal au mode Insertion se fait avec le i, mais il existe plein d&#8217;autres fa\u00e7ons, le <em>a<\/em>, le <em>o<\/em>, le <em>O<\/em> entre autres.<\/p>\n<p>Puis le d\u00e9placement simple en mode normal, avec les fl\u00e8ches, mais aussi avec les lettres <em>hjkl<\/em>. J&#8217;utilise les fl\u00e8ches m\u00eame s&#8217;il parait que les lettres cela devient plus ergonomique. Mais sur un clavier b\u00e9po c&#8217;est pas pareil&#8230;<\/p>\n<p>Mais les d\u00e9placement c&#8217;est aussi de mots en mots <em>w<\/em> vers la droite, et <em>b<\/em> vers la gauche, mais aussi vers la fin de ligne <em>$<\/em> et vers le d\u00e9but de ligne <em>^<\/em>.<br \/>\nOn peut aller aussi vers la lettre que l&#8217;on veux avec f(lettre) vers la droite et F(lettre) vers la gauche.<br \/>\nEnfin vers le bas du fichier avec G.<br \/>\nAvec ces commandes on arrive d\u00e9j\u00e0 \u00e0 \u00eatre bien rapide pour le placement sur l&#8217;endroit que l&#8217;on veut.<\/p>\n<p>Une fois que l&#8217;on y est que peut-on faire ?<br \/>\nremplacer une lettre par une autre ?<br \/>\nr(lettre)<br \/>\neffacer une lettre<br \/>\nx<br \/>\neffacer un mot<br \/>\ndw<br \/>\neffacer n mots<br \/>\nd(n)w<br \/>\neffacer une ligne<br \/>\ndd<br \/>\nins\u00e9rer une ligne<br \/>\napr\u00e8s<br \/>\no<br \/>\navant<br \/>\nO<br \/>\nins\u00e9rer du texte<br \/>\ni<br \/>\napr\u00e8s<br \/>\na<\/p>\n<p>On peut aussi annuler une commande\/b\u00e9tise<br \/>\nu<br \/>\net annuler l&#8217;annulation<br \/>\nCTRL R<\/p>\n<p>Avec cela on a d\u00e9j\u00e0 une bonne base pour travailler efficacement.<br \/>\nAh oui ! il manque la base<br \/>\nenregistrer<br \/>\n:w<br \/>\nquitter sans enregistrer<br \/>\n:q!<br \/>\nenregistrer et quitter<br \/>\n:wq<\/p>\n<p>Une fois ceci int\u00e9gr\u00e9 le charme s&#8217;op\u00e8re et tout doucement on en devient <span style=\"text-decoration: line-through;\">plus beau<\/span>, <span style=\"text-decoration: line-through;\">plus intelligent<\/span>, <span style=\"text-decoration: line-through;\">plus riche<\/span>, plus rapide. Et on en vient \u00e0 regretter que tous les outils ne soient pas sous VIM, le mail (quoique \u00e0 voir), le traitement de texte, le navigateur internet etc.<br \/>\nBref Vim c&#8217;est excellent, la courbe d&#8217;apprentissage est un peu rude, surtout au niveau du changement d&#8217;habitude, mais le jeu en vaut la chandelle.<br \/>\nAh oui ce texte a \u00e9t\u00e9 \u00e9crit sous Vim.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il est possible que vous ne le connaissiez pas, m\u00eame s&#8217;il est tr\u00e8s connu parmis les informaticiens et d\u00e9veloppeurs, mais il existe un outil pour \u00e9diter le texte qui est g\u00e9nial : Vim. Vim est en fait la version am\u00e9lior\u00e9e de VI (vi Meilleur en fait :-) ) et existe depuis au moins, euh 30- &hellip; <a href=\"http:\/\/gruson.name\/weblog\/2010\/04\/29\/vim-decouverte-et-plaisir\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Vim, d\u00e9couverte et plaisir.<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,33],"tags":[19,31],"class_list":["post-346","post","type-post","status-publish","format-standard","hentry","category-technologies","category-uber-geek","tag-informatique","tag-programmation"],"_links":{"self":[{"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/posts\/346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/comments?post=346"}],"version-history":[{"count":8,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/posts\/346\/revisions"}],"predecessor-version":[{"id":352,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/posts\/346\/revisions\/352"}],"wp:attachment":[{"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/media?parent=346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/categories?post=346"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gruson.name\/weblog\/wp-json\/wp\/v2\/tags?post=346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}