Outils pour utilisateurs

Outils du site


issue55:c_c

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
issue55:c_c [2012/01/27 17:36] auntieeissue55:c_c [2012/01/28 19:19] (Version actuelle) andre_domenech
Ligne 7: Ligne 7:
 As such, I will be covering Macros, search/replace, find, and a basic introduction to regular expressions this month.** As such, I will be covering Macros, search/replace, find, and a basic introduction to regular expressions this month.**
  
-Le mois dernier, j'ai écrit une brève introduction à gVim/Vim, que j'espère étoffer dans cet article. Récemment, j'ai reçu un courriel d'un lecteur me demandant si cela valait le coût d'apprendre à connaître Vim ou pas. Les points pertinents du mail étaient :+Le mois dernier, j'ai écrit une brève introduction à gVim/Vim, que j'espère étoffer dans cet article. Récemment, j'ai reçu un courriel d'un lecteur me demandant si cela valait le coût d'apprendre à connaître Vim ou pas. Les points pertinents du courriel étaient :
 a) Si vous utilisez Windows quotidiennement au bureau, y a-t-il quand même une raison d'apprendre à utiliser Vim ? a) Si vous utilisez Windows quotidiennement au bureau, y a-t-il quand même une raison d'apprendre à utiliser Vim ?
 b) Si vous ne programmez pas beaucoup (ou pas du tout), est-ce que Vim pourra vous venir en aide ? b) Si vous ne programmez pas beaucoup (ou pas du tout), est-ce que Vim pourra vous venir en aide ?
-J'ai renvoyé un assez long mail, mais, en résumé j'ai finalement dit :+J'ai renvoyé un assez long courriel, mais, en résumé j'ai finalement dit :
 a) gVim/Vim ont un client Windows et, si le cœur vous en dit, vous pouvez donc l'utiliser là aussi. a) gVim/Vim ont un client Windows et, si le cœur vous en dit, vous pouvez donc l'utiliser là aussi.
-b) Je trouve que Vim propose un ensemble de fonctionnalités qui rendent les tâches répétitives extrêmement facile. C'est plus évident si vous faites du codage (c-à-des en-têtes, des appels de fonction, des méthodes, du formatage, de la refactorisation, etc.), mais si vous faites n'importe quel sorte de tâche où vous vous trouvez à maintes reprises en train de faire la même modification au même mot ou à de gros blocs de texte à la fois, Vim rendra certainement votre vie un peu plus facile. +b) Je trouve que Vim propose un ensemble de fonctionnalités qui rendent les tâches répétitives extrêmement facile. C'est plus évident si vous faites du codage (c'est-à-dire des en-têtes, des appels de fonction, des méthodes, du formatage, de la refactorisation, etc.), mais si vous faites n'importe quelle sorte de tâche où vous vous trouvez à maintes reprises en train de faire la même modification au même mot ou à de gros blocs de texte à la fois, Vim rendra certainement votre vie un peu plus facile. 
-Ainsi, ce mois-ci, je vais parler de Macros, rechercher/remplacer, trouver, et je vais faire une présentation de base des expressions régulières.+Ainsi, ce mois-ci, je vais parler de macros, rechercher/remplacer, trouver, et je vais faire une présentation de base des expressions régulières.
  
 **Before I begin, please take the following to heart: Use Vim. **Before I begin, please take the following to heart: Use Vim.
Ligne 25: Ligne 25:
 Avant de commencer, vous êtes prié de tenir compte de ce qui suit : Servez-vous de Vim. Avant de commencer, vous êtes prié de tenir compte de ce qui suit : Servez-vous de Vim.
  
-En disant cela, je vous demande simplement de faire vos tâches quotidiennes avec Vim pendant environ une semaine et, quand vous remarquerez que vous répétez une tâche, faites une rapide recherche en ligne pour apprendre comment l'automatiser (ou, à tout le moins, réduire le nombre de touches frappées). Au début, cela pourra vous ralentir, mais, in fine, il va réduire le temps dont vous avez besoin. Je vous demande de faire une recherche en ligne simplement parce que, d'après mon expérience, trouver les réponses à vos questions par vous-même,au lieu de laisser quelqu'un d'autre vous les donner sur un plateau, peut vous aider à vous souvenir de la solution.+En disant cela, je vous demande simplement de faire vos tâches quotidiennes avec Vim pendant environ une semaine et, quand vous remarquerez que vous répétez une tâche, faites une rapide recherche en ligne pour apprendre comment l'automatiser (ou, à tout le moins, réduire le nombre de touches frappées). Au début, cela pourra vous ralentir, mais, in fine, il va réduire le temps dont vous avez besoin. Je vous demande de faire une recherche en ligne simplement parce que, d'après mon expérience, trouver les réponses à vos questions par vous-même, au lieu de laisser quelqu'un d'autre vous les donner sur un plateau, peut vous aider à vous souvenir de la solution.
  
 Et maintenant, l'article... Et maintenant, l'article...
  
-Vim propose beaucoup de fonctionnalités et tous ne s'appliqueront pas à votre cas. Ainsi, je vous recommande de sauter les trucs qui ne semblent pas répondre à vos besoins, le cas échéant, pour réduire la quantité d'information à assimiler. Pour tous les raccourcis suivants, tout ce qu'il y a entre « <> » sont des variables dont vous devez décider vous-même, et tout ce qu'il y a entre des « [] » est une touche sur le clavier sur laquelle il faudrait appuyer. Enfin, sauf indication contraire, toutes les commandes et les frappes sont à entrer dans le mode par défaut de Vim (celui qui est « vierge »).+Vim propose beaucoup de fonctionnalités et toutes ne s'appliqueront pas à votre cas. Ainsi, je vous recommande de sauter les trucs qui ne semblent pas répondre à vos besoins, le cas échéant, pour réduire la quantité d'informations à assimiler. Pour tous les raccourcis suivants, tout ce qu'il y a entre « <> » sont des variables dont vous devez décider vous-même, et tout ce qu'il y a entre des « [] » est une touche sur le clavier sur laquelle il faudrait appuyer. Enfin, sauf indication contraire, toutes les commandes et les frappes sont à entrer dans le mode par défaut de Vim (celui qui est « vierge »).
  
 **Macros: **Macros:
Ligne 51: Ligne 51:
 Macros : Macros :
  
-Vim vous donne la possibilité de créer des Macros à la volée. Cela veut dire que vous pouvez enregistrer un ensemble de commandes dans Vim afin de pouvoir les répéter facilement. La méthode de base est la suivante :+Vim vous donne la possibilité de créer des macros à la volée. Cela veut dire que vous pouvez enregistrer un ensemble de commandes dans Vim afin de pouvoir les répéter facilement. La méthode de base est la suivante :
  
 [q]<lettre><commandes>[q] [q]<lettre><commandes>[q]
  
-La touche [q] démarre la capture d'un Macro qui est sauvegardé à la lettre que vous choisissez. Une fois  [q]<lettre> entré, vous pouvez alors commencez à utilisez n'importe lesquelles des commandes de Vim pour faire les modifications nécessaires dans votre texte. Une fois terminé, tapez sur la touche q à nouveau (en dehors de tout mode). Un exemple pourrait être :+La touche [q] démarre la capture d'une macro qui est sauvegardée à la lettre que vous choisissez. Une fois [q]<lettre> entré, vous pouvez alors commencer à utiliser n'importe lesquelles des commandes de Vim pour faire les modifications nécessaires dans votre texte. Une fois terminé, tapez sur la touche q à nouveau (en dehors de tout mode). Un exemple pourrait être :
  
 [q][b] [q][b]
Ligne 61: Ligne 61:
 [q] [q]
  
-Cela liera le macro à la touche « b ». Pour exécuter cette série de commandes, vous devez tapez « @<lettre>», ce qui dans ce cas serait :+Cela liera la macro à la touche « b ». Pour exécuter cette série de commandes, vous devez tapez « @<lettre> », ce qui dans ce cas serait :
  
 @b @b
  
-Comme pour toute commande dans Vim, vous pouvez la répéter en la faisant précéder d'un numéro. Si vous avez tapé « 55@b » à la place, le macro « b » serait executé 55 fois. Si vous tapez « @@ » le dernier macro s'exécutera à nouveau. Si vous voulez apprendre davantage au sujet des Macros, je recommande l'article sur le Wiki de Vim : http://vim.wikia.com/wiki/Macros+Comme pour toute commande dans Vim, vous pouvez la répéter en la faisant précéder d'un numéro. Si vous avez tapé « 55@b » à la place, la macro « b » serait executée 55 fois. Si vous tapez « @@ » la dernière macro s'exécutera à nouveau. Si vous voulez en apprendre davantage au sujet des macros, je recommande l'article sur le Wiki de Vim : http://vim.wikia.com/wiki/Macros.
  
-Search:+**Search:
  
 In Vim (and programs similar to Vim, like more, less, mutt, etc.), you can search the text using the following format: In Vim (and programs similar to Vim, like more, less, mutt, etc.), you can search the text using the following format:
Ligne 86: Ligne 86:
  
 So if you wanted to replace all occurrences of “vim” with “Vim”, your command would read: So if you wanted to replace all occurrences of “vim” with “Vim”, your command would read:
 +
 +:%s/vim/Vim/g**
 +
 +Rechercher :
 +
 +Dans Vim (et dans des programmes similaires, comme more, less, mutt, etc.), vous pouvez rechercher quelque chose dans le texte avec ceci :
 +
 +/<terme>
 +
 +La barre oblique dit au programme que ce qui suit est un terme à rechercher (et dans Vim, le terme entier, y compris la barre oblique, s'affiche en bas de la fenêtre). Il va alors bouger à la première occurrence du mot. Vous pouvez naviguer dans les résultats avec [n] pour bouger jusqu'à la prochaine et [maj]+[n] (que je vais dorénavant appeler [N] pour revenir à la précédente.
 +
 +et Remplacer :
 +
 +Par défaut, Vim prend en charge les expressions régulières. C'est extrêmement utile quand vous remplacez quelque chose (dans Vim, cela s'appelle une « substitution »), parce que vous pouvez confronter le nombre maximum de résultats possible. Tout d'abord, nous allons parler du comportement normal de rechercher et remplacer :
 +
 +:%s/<terme>/<remplaçant>/
 +
 +Cela trouvera la première occurrence de <terme> et le remplacera avec <remplaçant>. Si vous voulez faire ce changement partout, vous devrez modifier la commande à ceci :
 +
 +:%s/<terme>/<remplaçant>/g
 +
 +Ainsi, si vous vouliez remplacer tous les « vim » par « Vim », voici votre commande :
  
 :%s/vim/Vim/g :%s/vim/Vim/g
  
-Regular expressions:+**Regular expressions:
  
 With regular expressions, you could replace all occurrences of “vim, VIM, vIm, viM” with “Vim” using the following command: With regular expressions, you could replace all occurrences of “vim, VIM, vIm, viM” with “Vim” using the following command:
Ligne 95: Ligne 117:
 :%s/[vV][iI][mM]/Vim/g :%s/[vV][iI][mM]/Vim/g
  
-As most of you can probably imagine, anything written in “[]” results in either possibility (or range of possibilities) being matched (henceforth called a set). You may ask yourself “why not put it all in one set?”. If you do it (go ahead and try it), you'll notice that it replaces each letter with the word “Vim” instead of replacing the entire word. This is because the square brackets denote a character/position in a word. If you tell it to replace all the letters, without specifying the location within a word (which is done by splitting it into separate sets of square brackets), it will simply replace each letter. +As most of you can probably imagine, anything written in “[]” results in either possibility (or range of possibilities) being matched (henceforth called a set). You may ask yourself “why not put it all in one set?”. If you do it (go ahead and try it), you'll notice that it replaces each letter with the word “Vim” instead of replacing the entire word. This is because the square brackets denote a character/position in a word. If you tell it to replace all the letters, without specifying the location within a word (which is done by splitting it into separate sets of square brackets), it will simply replace each letter. **
  
-So, if you want to match all upper, lower, and numerical cases, you could use [A-Za-z0-9]. The way it works is that anything next to each other is taken as a new series, and anything on the opposite ends of a hyphen is a range. So your 3 ranges areA-Z (capital letters), a-z (lower case letters), and 0-9 (numbers). If you want to match every single word that begins with the capital letter “T”, you could use T[a-z]*. The asterisk tells Vim that the last set can be repeated indefinitely. Since we didn't include space in the set, it will then stop at the end of a word.+Expressions régulières :
  
-A great number of options opens up to you in this way. You can run a search for all numbers between 1000 and 9999 with [1-9][0-9]\{3\}. In this case, the braces contain a limiter (i.e. number of repetitions of the search term before it). You can also supply it as a range. For example [1-9][0-9]\{2,3\} will search for any number between 100 and 9999. You need to escape the braces with the backslash so that Vim will not include them as part of the search term.+En utilisant les expressions régulières, vous pourriez remplacer toutes les occurrences de « vim, VIM, vIm viM » par « Vim » avec la commande suivante : 
 + 
 +:%s/[vV][iI][mM]/Vim/
 + 
 +Comme la plupart d'entre vous pouvez sans doute imaginer, tout ce qui est écrit entre des crochets « [] » donne soit la possibilité (ou une plage de possibilités) de trouver une ou des correspondante(s) (que j'appellerai désormais un ensemble). Vous êtes peut-être en train de vous demander « Pourquoi ne pas mettre le tout dans un seul ensemble ? ». Si vous le faites (allez-y, essayez-le), vous remarquerez que cela remplace chaque lettre par le mot « Vim » au lieu de remplacer le mot entier. Cela est dû au fait que les crochets signifient un caractère/position dans un mot. Si vous lui dites de remplacer toutes les lettres, sans spécifier leur position dans le mot (ce qui se fait avec l'utilisation d'ensembles distincts de crochets), il va tout simplement remplacer chaque lettre. 
 + 
 +**So, if you want to match all upper, lower, and numerical cases, you could use [A-Za-z0-9]. The way it works is that anything next to each other is taken as a new series, and anything on the opposite ends of a hyphen is a range. So your 3 ranges are: A-Z (capital letters), a-z (lower case letters), and 0-9 (numbers). If you want to match every single word that begins with the capital letter “T”, you could use T[a-z]*. The asterisk tells Vim that the last set can be repeated indefinitely. Since we didn't include space in the set, it will then stop at the end of a word.** 
 + 
 +Ainsi, si vous voulez faire correspondre tous les caractères majuscules, minuscules et numériques, vous pourriez utiliser [A-Za-z0-9]. Autrement dit, n'importe quoi à côté d'autre chose est compris comme une nouvelle série et tout ce qui se trouve séparé par un tiret est une plage. Et donc vos trois plages sont : A-Z (les majuscules), a-z (les minuscules) et 0-9 (les nombres). Si vous vouliez trouver tous les mots qui commencent par un « T » majuscule, vous pourriez utiliser T[a-z]*. L'astérisque dit à Vim que le dernier ensemble peut se répéter indéfiniment. Puisque l'espace n'était pas compris dans l'ensemble, cela s'arrêtera à la fin d'un mot. 
 + 
 +**A great number of options opens up to you in this way. You can run a search for all numbers between 1000 and 9999 with [1-9][0-9]\{3\}. In this case, the braces contain a limiter (i.e. number of repetitions of the search term before it). You can also supply it as a range. For example [1-9][0-9]\{2,3\} will search for any number between 100 and 9999. You need to escape the braces with the backslash so that Vim will not include them as part of the search term.
  
 This is just a brief overview of a few regular expressions. They can become a lot more complicated as they become more advanced. If you want to learn more, I highly recommend this Tutorial: http://www.regular-expressions.info/tutorial.html. There are also a number of blog articles on how to wrap your head around creating expressions to do what you want. This is just a brief overview of a few regular expressions. They can become a lot more complicated as they become more advanced. If you want to learn more, I highly recommend this Tutorial: http://www.regular-expressions.info/tutorial.html. There are also a number of blog articles on how to wrap your head around creating expressions to do what you want.
  
-I hope you've found this article to be interesting. I plan to continue along this path next month, with an overview of Pentadactyl (a Vim-like interface for Firefox). If you have any questions, comments, or suggestions, feel free to email me at lswest34@gmail.com. If you do email me, please include “FCM” or “C&C” (or, as a regular expression: [fFcC][cC&][mMcC]) in the subject header.+I hope you've found this article to be interesting. I plan to continue along this path next month, with an overview of Pentadactyl (a Vim-like interface for Firefox). If you have any questions, comments, or suggestions, feel free to email me at lswest34@gmail.com. If you do email me, please include “FCM” or “C&C” (or, as a regular expression: [fFcC][cC&][mMcC]) in the subject header.** 
 + 
 +De cette façon, un grand nombre d'options s'ouvrent à vous. Vous pouvez rechercher tous les nombres entre 1 000 et 9 999 avec [1-9][0-9]\{3\}. Ici, les accolades contiennent un limiteur (c'est-à-dire le nombre de répétitions du terme recherché le précédant). Vous pouvez aussi le fournir comme plage. Par exemple [1-9][0-9]\{2,3\} recherchera tous les nombres entre 100 et 9 999. Vous avez besoin de sortir des accolades avec la barre oblique inversée pour faire en sorte que Vim ne les inclue pas comme partie du terme rechercher. 
 + 
 +Ceci n'est qu'une brève vue d'ensemble de quelques expressions régulières. Elles peuvent devenir bien plus compliquées. Si vous voulez en apprendre davantage, je recommande vivement ce tutoriel-ci : http://www.regular-expressions.info/tutorial.html. Il existe aussi plusieurs articles de blog sur comment éduquer votre cerveau à créer les expressions qui font ce que vous souhaitez. 
 + 
 +J'espère que vous avez trouvé cet article intéressant. Je compte continuer sur ma lancée le mois prochain en donnant un aperçu général de Pentadactyl (une interface un peu comme Vim pour Firefox). Si vous avez des questions, des commentaires ou des suggestions, n'hésitez pas à m'envoyer un mail à lswest@gmail.com. Si vous le faites, prière de mettre « FCM » ou « C&C » (ou, en tant qu'expression régulière : [fFcC] [cC&] [mMcC]) dans la case Objet.
issue55/c_c.1327682200.txt.gz · Dernière modification : 2012/01/27 17:36 de auntiee