Developpez.com - Rubrique Dév. Web

Le Club des Développeurs et IT Pro

Notepad++ : Guide pratique,

Une série de tutoriels de Nicolas Liautaud pour découvrir l'éditeur de texte

Le 2013-07-31 14:10:11, par Bovino, Rédacteur


Nicolas Liautaud vous propose une série d'articles pensés sous forme de Wiki sur l'éditeur de texte Notepad++.
Cette série d'articles vous permettra de découvrir ou de redécouvrir les fonctionnalités les plus intéressantes de cet éditeur.



Merci de faire part de vos remarques et commentaires sur ces articles.
  Discussion forum
21 commentaires
  • JLTourne
    Candidat au Club
    Excellent
    Où se trouve le pdf avec l'article complet ?
    Je ne voie que n pdf distincts pour chaque chapître.

    Merci
  • Loceka
    Expert confirmé
    Envoyé par Bovino
    Si tu penses que quelque chose manque...
    Et si on trouve que quelque chose n'est pas tout à fait correct ?

    Envoyé par jmnicolas
    J'ai mis le chapitre sur les REGEX en favori, merci pour ton travail
    C'est aussi un des premiers chapîtres que je suis allé voir parce que je suis fan des regex (et que Notepad++ s'est grandement amélioré depuis la 6.0 apparement (mars 2012, même si j'ai l'impression que ça fait plus longtemps que ça)).

    Et je ne suis pas du tout d'accord avec sa phrase de présentation :
    Notepad++ (ou plus précisément sa composante Scintilla) ne prend en compte que la syntaxe de base des expressions régulières, mais permet déjà un très grand nombre d'opérations.
    Le moteur de regex de Notepad++ ne prend pas en compte que la syntaxe de base des regex (dans ses premières versions oui, c'était même risible). Il utilise désormais une syntaxe perl-like (PCRE : Perl Compatible Regular Expressions) très poussée, tant dans la recherche que dans le remplacement.

    Quelques exemples en vrac :
    • les "backreferences" dans la recherche : il est possible de réutiliser un groupe existant dans la regex
      Code :
      1
      2
      3
      4
      regex : (\w{3})\1 (match tout motif de 3 caractères répété 2 fois)
      texte :
      source         |   résultat
      abcabc abcdef  |   abcabc
    • "zero-width positive lookahead" :
      Code :
      1
      2
      3
      4
      5
      6
      7
      8
      regex : ^(?=.+) (match tout début de ligne possédant au moins un caractère, le fait d'accepter une expression non fixe (.+) n'est pas géré par tous les moteurs de regex)
      remplacement : '- '
      texte :
      source   | résultat
      abc      | - abc
      def      | - def
               | 
      ghi      | - ghi
    • "zero-width positive lookbehind" :
      Code :
      1
      2
      3
      4
      5
      6
      7
      8
      regex : (?<=.)$ (match toute fin de ligne précédée d'un caractère)
      remplacement : .
      texte :
      source   | résultat
      abc      | abc.
      def      | def.
               | 
      ghi      | ghi.
    • remplacement en majuscule :
      Code :
      1
      2
      3
      4
      5
      6
      7
      regex : \b(?:(a\w*)|(\w+))\b (match séparément les mots commençant par un "a" des autres)
      remplacement \u$1\U$2 (mets en majuscule la première lettre des mots commençant par "a" ou tout le mot pour les autres)
      texte :
      source   | résultat
      abc      | Abc
      def      | DEF
      ghi      | GHI


    Tous ces exemples ne sont possibles que sur un moteur de regex assez évolué et je trouve que la phrase qu'il a mise peut induire en erreur un lecteur qui aurait utilisé Notepad++ dans ses anciennes versions (ou qui n'aurait pas mis à jour) où effectivement la gestion des expressions régulières était extrèmement basique (.* accepté, .+ non reconnu par exemple).

    Je crois qu'il est important de rendre cet hommage à Notepad++ qui a fait l'effort d'intégrer un moteur de regex très performant dans son processus de recherche/remplacement (il est assez impressionnant par sa rapidité sur de gros documents (200/300Mo)).

    Avant j'utilisais jEdit pour faire tous mes remplacements par regex, maintenant c'est beaucoup plus rare, sauf quand il faut faire des calculs (numérotation incrémentielle, ...).
  • FelipeVervena
    En attente de confirmation mail
    Je ne peux que vous féliciter de participer à mieux faire connaître Notepad++ qui est un outil digne d'un vrai programmeur !
  • Excellent !!!!
  • joreveur
    Membre averti
    bonsoir
    par exemple

    http://nliautaud.developpez.com/tuto...dplusplus.epub

    par exemple il n'y a que quelques pages et le sommaire ne renvoie nul part.

    j'ai essayé sur un sony reader et avec epubReader addon de firefox

    bien à vous
  • Patinber
    Membre à l'essai
    Envoyé par JLTourne
    Excellent
    Où se trouve le pdf avec l'article complet ?
    Je ne voie que n pdf distincts pour chaque chapître.

    Merci
    Bonjour,
    oui un PDF complet serait très appréciable.
    Merci.
  • jmnicolas
    Membre éprouvé
    J'ai mis le chapitre sur les REGEX en favori, merci pour ton travail
  • Torgar
    Rédacteur
    C'est intéressant, car c'est aussi le chapitre qui m'a fait découvrir la série d'article. Et c'est la première fois que je trouve un tuto vraiment explicite sur l'utilisation des expressions régulières dans Notepad++.
  • ReliKenS
    Membre à l'essai
    Excellent,

    Il manque un truc super pratique que j'utilise tout le temps, c'est le remplacement avec expression régulière + variable

    Quand on remplace "quelquechose(.*)blablabla" par "autrechose\1blablabla"

    exemple : si on veut remplacer tous les "i = (.*);" par "truc.setI(\1);
  • Bovino
    Rédacteur
    Si tu penses que quelque chose manque, tu peux tout à fait le proposer ici : Contribuez à l'enrichissement de la nouvelle FAQ Notepad++.