Les deux révisions précédentesRévision précédente | |
issue55:c_c [2012/01/28 15:50] – shinichi | issue55:c_c [2012/01/28 19:19] (Version actuelle) – andre_domenech |
---|
J'ai renvoyé un assez long courriel, 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-à-d 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. | 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. |
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: |
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] |
[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: |
/<terme> | /<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 occurence du mot. Vous pouvez naviguer dans les résultats avec [n] pour bouger jusqu'à la prochaine et [maj]+[n] (que je vais dorénavant appelé [N] pour revenir à la précédente. | 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 : | et Remplacer : |
| |
Par défaut, Vim prend en charge les expressions régulières. C'est extrêmement utile quand vous remplacer quelque chose (dans Vim, cela s'appelle une | 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 : |
« 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>/ | :%s/<terme>/<remplaçant>/ |
| |
Cela trouvera la première occurence de <terme> et le remplacera avec <remplaçant>. Si vous voulez faire ce changement partout, vous devrez modifier la commande à ceci : | 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 | :%s/<terme>/<remplaçant>/g |
:%s/[vV][iI][mM]/Vim/g | :%s/[vV][iI][mM]/Vim/g |
| |
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 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 signifie un caractère/position dans un mot. Si vous le 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. | 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.** | **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éparer par un tiret est une plage. Et donc vous 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été indéfiniment. Puisque l'espace n'était pas compris dans l'ensemble, cela s'arrêtera à la fin d'un mot. | 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. | **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. |
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 1000 et 9999 avec [1-9][0-9]\{3\}. Ici, les accolades contiennent un limiteur (c-à-d 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 9999. 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. | 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. | 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. | 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. |