Outils pour utilisateurs

Outils du site


issue56: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
issue56:c_c [2012/02/06 22:52] fredphil91issue56:c_c [2012/02/07 13:16] (Version actuelle) andre_domenech
Ligne 5: Ligne 5:
 In order to follow the article, I'd highly recommend opening a copy of the file from Pastebin in Vim (or GVim) so you can work along.** In order to follow the article, I'd highly recommend opening a copy of the file from Pastebin in Vim (or GVim) so you can work along.**
  
-Vu le grand intérêt suscité par cette rubrique chez un lecteur, j'ai décidé d'écrire un ou deux autres articles sur Vim (y compris celui-ci). Ce mois-ci je vais m'appuyer sur un exemple concret (dont le fichier peut être trouvé ici : http://pastebin.com/PkNqrqJt). Je vais parler de l'utilisation du mode visuel par bloc, de quelques astuces pour commenter un grand nombre de lignes, de deux ou trois trucs sur l'utilisation de la souriset du copier/coller depuis/vers des programmes externes à partir de/vers Vim. Si vous êtes familier avec tous ces sujets, vous pouvez ignorer cet article.+Vu le grand intérêt suscité par ce sujet chez un lecteur, j'ai décidé d'écrire un ou deux autres articles sur Vim (y compris celui-ci). Ce mois-ci je vais m'appuyer sur un exemple concret (dont le fichier peut être trouvé ici : http://pastebin.com/PkNqrqJt). Je vais parler de l'utilisation du mode visuel par bloc, de quelques astuces pour commenter un grand nombre de lignes, de deux ou trois trucs sur l'utilisation de la souris et du copier/coller depuis/vers des programmes externes à partir de/vers Vim. Si vous connaissez déjà tout ceci, vous pouvez ignorer cet article.
  
-Avant de commencer, je vais vous expliquer brièvement ce qu'est un nombre abondant, afin que chacun puisse à peu près suivre le script. Un nombre abondant est un nombre qui est plus grand que la somme de tous ses diviseurs (un diviseur est un nombre qui divise une valeur sans un reste). Exemple : les facteurs de 12 sont 1,2,3,4,6 ; la somme des diviseurs vaut : 1+2+3+4+6 = 16, et 16>12. Le script calcule simplement quels nombres (compris entre deux valeurs données) sont abondantset lesquels ne le sont pas. La fonction fait partie de ma solution à un problème du Projet Euler.+Avant de commencer, je vais vous expliquer brièvement ce qu'est un nombre abondant, afin que chacun puisse à peu près suivre le script. Un nombre abondant est un nombre qui est plus grand que la somme de tous ses diviseurs (un diviseur est un nombre qui divise une valeur sans un reste). Exemple : les facteurs de 12 sont 1,2,3,4,6 ; la somme des diviseurs vaut : 1+2+3+4+6 = 16, et 16>12. Le script calcule simplement quels nombres (compris entre deux valeurs données) sont abondants et lesquels ne le sont pas. La fonction fait partie de ma solution à un problème du Projet Euler.
  
-Afin de suivre l'article, je vous recommande vivement l'ouverture d'une copie du fichier à partir de Pastebin dans Vim (ou GVim) afin que vous puissiez travailler.+Afin de suivre l'article, je vous recommande vivement l'ouverture d'une copie du fichier à partir de Pastebin dans Vim (ou GVim) pour que vous puissiez travailler avec moi.
  
 **Area 1 (Commenting) **Area 1 (Commenting)
Ligne 25: Ligne 25:
     let char=getline('.')[0]     let char=getline('.')[0]
     if char == "#"     if char == "#"
-       s/^#//g+       <nowiki>s/^#//g</nowiki>
     else     else
        s/^/#/g        s/^/#/g
Ligne 34: Ligne 34:
 Section 1 (Commenter) Section 1 (Commenter)
  
-Les programmeurs parmi vous seront familiers avec le concept de commenter tout le code sauf un petit bout que vous voulez testerc'est utile quand les choses ne fonctionnent pas. Mon approche pour ce faire est d'utiliser le mode visuel par bloc. Les étapes sont les suivantes (à partir du début de la première ligne que vous voulez commenter) :+Les programmeurs parmi vous seront familiers avec le concept de commenter tout le code sauf un petit bout que vous voulez tester c'est utile quand les choses ne fonctionnent pas. Pour ce faire, j'utilise le mode Visuel par bloc. Les étapes sont les suivantes (à partir du début de la première ligne que vous voulez commenter) :
  
 <ctrl>+[v];  [j];  <shift>+[i], [#]; [Echap] <ctrl>+[v];  [j];  <shift>+[i], [#]; [Echap]
  
-La première étape passe en mode visuel par bloc, la touche j agit comme la flèche vers le baset <shift>+[i] passe en mode d'insertion pour toutes les lignes sélectionnées. Après ces étapes, vous devez ensuite appuyer sur la touche pour le symbole de commentaire (dans le cas de Python, c'est le dièse). Pour décommenter, consultez la section 2 pour supprimer en mode Visuel par bloc.+La première étape passe en mode visuel par bloc, la touche j agit comme la flèche vers le bas et <shift>+[i] passe en mode insertion pour toutes les lignes sélectionnées. Après ces étapes, vous devez ensuite appuyer sur la touche pour le symbole de commentaire (dans le cas de Python, c'est le dièse). Pour décommenter, consultez la section 2 pour comment supprimer en mode Visuel par bloc.
  
-Le lecteur qui m'a contacté offert le script suivant pour faire la même chose:+Le lecteur qui m'a contacté a proposé le script suivant pour faire la même chose:
  
   " COMMENTER AVEC UN # DANS LES SCRIPTS BASH   " COMMENTER AVEC UN # DANS LES SCRIPTS BASH
Ligne 55: Ligne 55:
 **This script has to be added to your .vimrc. Once it has been added, you can call it in the following way (same process for commenting and uncommenting): **This script has to be added to your .vimrc. Once it has been added, you can call it in the following way (same process for commenting and uncommenting):
  
-<ctrl>+[v]//[v]//[V]; [j]; [#]+<nowiki><ctrl>+[v]//[v]//[V]; [j]; [#]</nowiki>
  
-As you can see, the only thing you save by doing this is entering and exiting insert mode (and possibly having to press the control key). I've included this script for the sake of those for whom every keystroke counts. You will need to adjust the substitute lines for each comment character you frequently use. For SQL you would replace if char == “#” with if char == “-” and s/^#//g with s/^--//g (same for the other substitution command). You must also replace the octothorpe in the vmap line, otherwise you'll be using the same key for multiple functions.**+As you can see, the only thing you save by doing this is entering and exiting insert mode (and possibly having to press the control key). I've included this script for the sake of those for whom every keystroke counts. You will need to adjust the substitute lines for each comment character you frequently use. For SQL you would replace if char == “#” with if char == “-” and <nowiki>s/^#//g with s/^--//g</nowiki> (same for the other substitution command). You must also replace the octothorpe in the vmap line, otherwise you'll be using the same key for multiple functions.**
  
 Ce script doit être ajouté à votre .vimrc. Une fois qu'il a été ajouté, vous pouvez l'appeler de la manière suivante (même processus pour commenter et décommenter) : Ce script doit être ajouté à votre .vimrc. Une fois qu'il a été ajouté, vous pouvez l'appeler de la manière suivante (même processus pour commenter et décommenter) :
  
-<ctrl>+[v]//[v]//[V]; [j]; [#]+<nowiki><ctrl>+[v]//[v]//[V]; [j]; [#]</nowiki>
  
-Comme vous pouvez le voir, la seule chose que vous économisez en faisant cela est d'entrer dans le mode insertion et d'en sortir (et peut-être d'avoir à appuyer sur la touche Ctrl). J'ai inclus ce script pour le bien de ceux pour qui toutes les touches comptent. Vous aurez besoin d'ajuster les lignes de substitution pour chaque caractère de commentaire que vous utilisez fréquemment. Pour SQL, vous devriez remplacer if char == "#" par if char == "-" et s/^#//g par s/^-// g (de même pour l'autre commande de substitution). Vous devez également remplacer le dièse dans la ligne vmap, sinon vous allez utiliser le même raccourci pour plusieurs fonctions.+Comme vous pouvez le voir, la seule chose que vous économisez en faisant cela est d'entrer dans le mode insertion et d'en sortir (et peut-être d'avoir à appuyer sur la touche Ctrl). J'ai inclus ce script pour ceux pour qui toutes les touches comptent. Vous aurez besoin d'ajuster les lignes de substitution pour chaque caractère de commentaire que vous utilisez fréquemment. Pour SQL, vous devriez remplacer if char == "#" par if char == "-" et <nowiki>s/^#//g par s/^-// g</nowiki> (de même pour l'autre commande de substitution). Vous devez également remplacer le dièse dans la ligne vmap, sinon vous allez utiliser le même raccourci pour plusieurs fonctions.
  
 **Area 2 (Visual Block Mode) **Area 2 (Visual Block Mode)
Ligne 71: Ligne 71:
 Deleting in Visual Block Mode: Deleting in Visual Block Mode:
  
-<ctrl>+[v]; [j]//[h]//[l]//[k]; [d]//[x]//[X]+<nowiki><ctrl>+[v]; [j]//[h]//[l]//[k]; [d]//[x]//[X]</nowiki>
  
 Which key you use in the second step is entirely dependent upon which direction you want to go (down, left, right, up, respectively). The key in the last step is entirely up to you, they all do the same. Which key you use in the second step is entirely dependent upon which direction you want to go (down, left, right, up, respectively). The key in the last step is entirely up to you, they all do the same.
Ligne 78: Ligne 78:
  
 Section of a line: Section of a line:
-[v]; [h]//[j]//[k]//[l]; [y]; [h]//[j]//[k]//[l]; <ctrl>+[v]; [h]//[j]//[k]//[l]; <shift>+[i]//<shift>+[a]; <ctrl>+[r]+[“]; [Esc]+<nowiki>[v]; [h]//[j]//[k]//[l]; [y]; [h]//[j]//[k]//[l]; <ctrl>+[v]; [h]//[j]//[k]//[l]; <shift>+[i]//<shift>+[a]; <ctrl>+[r]+[“]; [Esc]</nowiki>
  
 <shift>+[i] inserts at the start of the line/selection, and <shift>+[a] appends to the end of the line/selection. <shift>+[i] inserts at the start of the line/selection, and <shift>+[a] appends to the end of the line/selection.
Ligne 88: Ligne 88:
 Puisque nous avons parlé de l'insertion dans le mode Visuel par bloc à l'étape 1, je ne vais pas en reparler ici. Puisque nous avons parlé de l'insertion dans le mode Visuel par bloc à l'étape 1, je ne vais pas en reparler ici.
  
-Suppression en mode Visuel par bloc:+Suppression en mode Visuel par bloc :
  
-<ctrl>+[v]; [j]//[h]//[l]//[k]; [d]//[x]//[X]+<nowiki><ctrl>+[v]; [j]//[h]//[l]//[k]; [d]//[x]//[X]</nowiki>
  
 La touche à utiliser dans la deuxième étape est entièrement dépendante de la direction dans laquelle vous voulez aller (respectivement vers le bas, la gauche, la droite, le haut). La touche dans la dernière étape est à votre choix, elles font toutes la même chose. La touche à utiliser dans la deuxième étape est entièrement dépendante de la direction dans laquelle vous voulez aller (respectivement vers le bas, la gauche, la droite, le haut). La touche dans la dernière étape est à votre choix, elles font toutes la même chose.
  
-Emporter (copier) du texte en mode Visuel par bloc:+Emporter (copier) du texte en mode Visuel par bloc :
  
-Section d'une ligne: +Section d'une ligne : 
-[v]; [h]//[j]//[k]//[l]; [y]; [h]//[j]//[k]//[l]; <ctrl>+[v]; [h]//[j]//[k]//[l]; <shift>+[i]//<shift>+[a]; <ctrl>+[r]+[“]; [Echap]+<nowiki>[v]; [h]//[j]//[k]//[l]; [y]; [h]//[j]//[k]//[l]; <ctrl>+[v]; [h]//[j]//[k]//[l]; <shift>+[i]//<shift>+[a]; <ctrl>+[r]+[“]; [Echap]</nowiki>
  
 <shift>+[i] insère au début de la ligne ou de la sélection, et <Shift>+[a] ajoute à la fin de la ligne ou de la sélection. <shift>+[i] insère au début de la ligne ou de la sélection, et <Shift>+[a] ajoute à la fin de la ligne ou de la sélection.
Ligne 111: Ligne 111:
 You may have noticed that the yank and paste methods work only within Vim. To copy text from Vim to another program (firefox, for example), you can select the text with the mouse and use the middle-mouse button paste. If, however, you are at another computer that runs a different operating system (or lacks that function), you can copy text to the system clipboard with: You may have noticed that the yank and paste methods work only within Vim. To copy text from Vim to another program (firefox, for example), you can select the text with the mouse and use the middle-mouse button paste. If, however, you are at another computer that runs a different operating system (or lacks that function), you can copy text to the system clipboard with:
  
-[v]//[V]; [y]; [h]//[j]//[k]//[l]; [“][+][y]+<nowiki>[v]//[V]; [y]; [h]//[j]//[k]//[l]; [“][+][y]</nowiki>
  
 A quick explanation: you select the text you want (first two steps) and then you hit the quotation marks key (on German keyboards it's <shift>+[2]), and then the plus key, and then the y key. Do this one after the other, not all at once. Then to paste in the external program, just use <ctrl>+[v], as per usual. A quick explanation: you select the text you want (first two steps) and then you hit the quotation marks key (on German keyboards it's <shift>+[2]), and then the plus key, and then the y key. Do this one after the other, not all at once. Then to paste in the external program, just use <ctrl>+[v], as per usual.
Ligne 125: Ligne 125:
 Section 3 (utilisation de la souris) Section 3 (utilisation de la souris)
  
-Juste un conseil rapide : si vous voulez mettre en évidence quelque chose dans Vim en étant dans le mode Visuel par bloc, maintenez <shift>+<alt> pendant que vous sélectionnez.+Juste un conseil rapide : si vous voulez mettre en évidence quelque chose dans Vim en étant dans le mode Visuel par bloc, appuyez sur <shift>+<alt> pendant que vous sélectionnez.
  
 Section 4 (copier et coller depuis/vers des programmes externes) Section 4 (copier et coller depuis/vers des programmes externes)
  
-Vous avez sans doute remarqué que les méthodes couper et coller fonctionnent uniquement à l'intérieur de Vim. Pour copier du texte depuis Vim vers un autre programme (firefox, par exemple), vous pouvez sélectionner le texte avec la souris et coller avec le bouton central de la souris. Si, toutefois, vous êtes sur un autre ordinateur qui exécute un système d'exploitation différent (ou n'a pas cette fonction), vous pouvez copier du texte dans le presse-papiers du système avec :+Vous avez sans doute remarqué que les méthodes copier et coller fonctionnent uniquement à l'intérieur de Vim. Pour copier du texte depuis Vim vers un autre programme (Firefox, par exemple), vous pouvez sélectionner le texte avec la souris et coller avec le bouton central de la souris. Si, toutefois, vous êtes sur un autre ordinateur qui exécute un système d'exploitation différent (ou n'a pas cette fonction), vous pouvez copier du texte dans le presse-papiers du système avec :
  
-[v]//[V]; [y]; [h]//[j]//[k]//[l]; [“][+][y]+<nowiki>[v]//[V]; [y]; [h]//[j]//[k]//[l]; [“][+][y]</nowiki>
  
-Une explication rapide : vous sélectionnez le texte que vous voulez (deux premières étapes), puis vous appuyez sur la touche guillemets (sur les claviers allemands c'est <shift>+[2]), puis sur la touche pluset puis sur la touche y. Faites cela touche après touche, pas tout à la fois. Puis, pour coller dans le programme externe, il suffit d'utiliser <ctrl>+[v], comme d'habitude.+Une explication rapide : vous sélectionnez le texte que vous voulez (deux premières étapes), puis vous appuyez sur la touche guillemets (sur les claviers allemands c'est <shift>+[2]), puis sur la touche plus et puis sur la touche y. Faites cela touche après touche, pas tout à la fois. Puis, pour coller dans le programme externe, il suffit d'utiliser <ctrl>+[v], comme d'habitude.
  
 Coller: Coller:
Ligne 141: Ligne 141:
 C'est tout. Appuyez sur ces 3 touches et cela va coller le presse-papier sur la ligne que vous avez sélectionnée (vous devrez peut-être commencer une nouvelle ligne si c'est ce que vous voulez). C'est tout. Appuyez sur ces 3 touches et cela va coller le presse-papier sur la ligne que vous avez sélectionnée (vous devrez peut-être commencer une nouvelle ligne si c'est ce que vous voulez).
  
-Vous pouvez également régler le presse-papiers sur autoselect, ce qui devrait automatiquement copier dans le presse-papiers système lorsque vous surlignez quelque choseet automatiquement coller à partir du presse-papier lorsque vous appuyez sur le bouton du milieu de la souris.+Vous pouvez également régler le presse-papiers sur autoselect, ce qui devrait automatiquement copier dans le presse-papiers système lorsque vous surlignez quelque chose et coller à partir du presse-papier automatiquement lorsque vous appuyez sur le bouton du milieu de la souris.
  
 **Area 5 (Extra tips) **Area 5 (Extra tips)
Ligne 181: Ligne 181:
 <ctrl>+[z] suspendra une tâche en arrière-plan (testé dans Zsh et Bash). Une fois que vous avez suspendu une tâche, vous pouvez la ré-ouvrir à l'aide de la commande fg dans le terminal. <ctrl>+[z] suspendra une tâche en arrière-plan (testé dans Zsh et Bash). Une fois que vous avez suspendu une tâche, vous pouvez la ré-ouvrir à l'aide de la commande fg dans le terminal.
  
-En touches à appuyer, cela donne :+En frappes, cela donne :
  
 <ctrl>+[z], [f][g][Entrée] <ctrl>+[z], [f][g][Entrée]
Ligne 189: Ligne 189:
 vim -x <nomFichier> vim -x <nomFichier>
  
-Cette commande vous demandera une clé de chiffrement avant de voir le fichier (si le fichier est vide/nouveau, elle stockera le mot de passe que vous entrez).+Cette commande vous demandera une clé de chiffrement avant de voir le fichier (si le fichier est vide/nouveau, elle stockera le mot de passe que vous entrerez).
  
 **Viewing History: **Viewing History:
Ligne 218: Ligne 218:
 [q][:] [q][:]
  
-Cela affichera une liste des commandes passées. Vous pouvez entrer le numéro de la liste afin de faire revenir la commandeou entrer [:][q] pour quitter la liste.+Cela affichera une liste des commandes passées. Vous pouvez entrer le numéro de la liste afin de faire revenir la commande ou entrer [:][q] pour quitter la liste.
  
-Exécuter les commandes du système à partir de Vim :+Exécuter les commandes système à partir de Vim :
  
 [!](commande) [!](commande)
Ligne 265: Ligne 265:
 set tabstop=4 set tabstop=4
  
-Ecrivez ceci dans votre .vimrc, et à chaque fois que vous appuyez sur la touche de tabulation, il insérera en fait jusqu'à 4 espaces.+Ecrivez ceci dans votre .vimrc, et à chaque fois que vous appuierez sur la touche de tabulation, il insérera en fait jusqu'à 4 espaces.
  
-Cela devrait être plus que suffisant pour garder tout le monde occupé jusqu'au mois prochain. Si vous avez des questions, commentaires ou demandes, n'hésitez pas à m'envoyer un courriel à lswest34@gmail.com. Si vous m'écrivez un courriel, s'il-vous-plaît n'oubliez pas d'inclure « C&C » ou « FCM » dans le sujet, de sorte que je ne passe pas à côté.+Cela devrait être plus que suffisant pour garder tout le monde occupé jusqu'au mois prochain. Si vous avez des questions, commentaires ou demandes, n'hésitez pas à m'envoyer un courriel à lswest34@gmail.com. Si vous m'écrivez un courriel, n'oubliez pas d'inclure « C&C » ou « FCM » dans la case Objet, de sorte que je ne passe pas à côté.
  
 Mon fichier .vimrc : http://pastebin.com/wv260CJk Mon fichier .vimrc : http://pastebin.com/wv260CJk
  
-J'espère que vous avez trouvé cet article intéressant. J'ai l'intention de poursuivre dans cette voie le mois prochain. Si vous avez des questions, commentaires ou suggestions, n'hésitez pas à m'envoyer un email à lswest34@gmail.com. Si vous m'envoyez un courriel, s'il-vous-plaît incluez « FCM » ou « C&C » (ou, comme expression régulière : [FFCC][CC&][MMCC]) dans le sujet.+J'espère que vous avez trouvé cet article intéressant. J'ai l'intention de poursuivre dans cette voie le mois prochain. Si vous avez des questions, commentaires ou suggestions, n'hésitez pas à m'envoyer un email à lswest34@gmail.com. Si vous m'envoyez un courriel, prière d'inclure « FCM » ou « C&C » (ou, comme expression régulière : [fFcC][cC&][mMcC]) dans le sujet.
  
issue56/c_c.1328565121.txt.gz · Dernière modification : 2012/02/06 22:52 de fredphil91