Articles tagués “notepad++

Edition multiligne dans Notepad++

Il y a deux « modes » pour faire de l’édition multiligne dans Notepad++.

Le premier est mode bloc ou mode colonne, on a un curseur géant qui prendre plusieurs lignes. Il y a plusieurs moyens pour sélectionner plusieurs lignes :

  1. Cliquer sur une ligne, laisser les touches Alt et Shit enfoncées et cliquer sur une autre ligne.
  2. Cliquer sur une ligne, laisser les touches Alt et Shit enfoncées et appuyer sur les flèches haut ou bas du clavier.
  3. Enfoncer la touche Alt et sélectionner plusieurs lignes (pas avec plusieurs clics mais en draggant).

Le second est le multi-curseur. Elle n’est pas activée par défaut, il faut aller dans les préférences :

Il suffit ensuite de faire Ctrl+clic pour rajouter un nouveau curseur.

Voici par exemple un contenu à modifier. On veut virer les détails entre la valeur binaire et le nom en début de ligne. On peut faire une édition multi-curseur :

Voici le contenu après modification :

On peut aussi faire une édition en mode colonne :

Mais il sera difficile d’arrive au bon résultat comme ceci. En effet, l’édition multiligne (en mode colonne comme en mode muti-curseur) est assez pauvre. On ne peut pas utiliser la touche Début ni la touche Fin de notre clavier pour déplacer toutes les lignes en même temps, Ctrl+Gauche ne permet pas de décaler d’un mot sur chaque ligne, Shit+Backspace ne supprime pas un mot par ligne, etc. Par contre, j’a réussi à enregistrer une macro qui fait Shift+Fin puis Backspace pour supprimer le reste d’une ligne, puis à rejouer cette macro en multiligne. On n’a pas tout perdu !


Outils Markdown pour Notepad++

Il y a très longtemps, j’avais parlé des outils XML pour Notepad++. Parlons aujourd’hui des outils Markdown !

Coloration syntaxique

Il n’y a pas de coloration syntaxique pour ce langage par défaut…

npp md avant

Avant…

On va commencer par remédier à ce défaut ! Notepad++ permet de définir des langages utilisateurs pour permettre la coloration syntaxique des langages non supportés nativement. On parle de « User Defined Language« .  Le dépôt GitHub markdown-plus-plus fournit plusieurs fichiers XML contenant des définitions de « User Defined Languages » pour le markdown. La section Usage du README explique comment importer ces fichiers.

Il est ensuite possible de sélectionner ce nouveau langage depuis le menu Langage. Il est sélectionné automatiquement si votre fichier porte l’une des extensions indiquer dans la configuration du langage importée. Il est possible d’en rajouter si jamais vous le souhaitez.

npp md apres

À mi-chemin

Visualisation

Maintenant que le texte est correctement coloré, il ne reste plus qu’avoir une visualisation du rendu ! Il existe un autre dépôt GitHub avec tout ce qu’il faut : MarkdownViewerPlusPlus ! Comme précédemment, le README vous explique tout ce que vous devez savoir.

Une fois le plugin installé et Notepad++ redémarré, un petit bouton avec un M blanc sur fond noir apparaît dans la barre d’outils. Il permet d’ouvrir la fenêtre de visualisation.

npp md apercu

Fini !

Aide-mémoire

En bonus, n’oublie pas de mettre ce Markdown Cheatsheet dans vos marque-pages !


Executer ses programmes Python depuis Notepad++

L’installateur Python fournit, en plus de l’interpréteur, l’éditeur IDLE. Il est efficace mais il est simple. Si vous souhaitez avoir une gestion plus complète de multiples fichiers ou des fonctions plus avancées, vous pouvez utiliser Notepad++. Question : comment facilement tester les programmes en cours de rédaction ?

Tout simplement en utilisant les fonctionnalités qu’offre Notepad++ pour exécuter des programmes. La première solution est d’utiliser les fonctionnalités du menu Exécution et son item Exécuter, accessible avec le raccourci clavier F5. On renseigne le champ avec la commande suivante :

C:\Python27\python.exe "$(FULL_CURRENT_PATH)"

Executer...

python.exe est l’interpréteur Python. $(FULL_CURRENT_PATH) est une variable interne de Notepad++. Son contenu est le même que le presse-papier après avoir fait Édition / Coller dans le presse-papier / Copier le chemin complet du document actuel et bien sûr elle est mise à jour quand on change de document. Bien fait, non ? Vous pouvez enregistrer la commande et lui donner un raccourci particulier. Rajouter l’option -i à l’interpréteur a pour effet de rester en mode interpréteur interactif à la fin de votre programme. C’est pratique pour empêcher la console qui s’ouvrira en cliquant sur Exécuter de se fermer automatiquement à la fin du programme Python. Une autre solution est de mettre un raw_input() à la fin du programme. Voici un programme exemple :

def welcome():
    print "En direct sur http://www.gradot.com !"

welcome()
raw_input("Appuyer sur ENTREE pour terminer...")

Une solution alternative est de passer par le plugin NppExec. Il suffit de l’installer grâce au Plugin Manager :

Installation de NppExec avec le Plugin Manager

Il sera ensuite disponible dans le menu Compléments / NppExec. La fonctionnalité intéressante est la première, Execute…, accessible avec le raccourci clavier F6. On renseigne dans la fenêtre la même commande que précédemment et on clique sur OK. Cette fois, aucun programme externe ne s’ouvre puisqu’une console intégrée à Notepad++ apparait en bas de l’écran. Plus besoin d’un -i ou dans raw_input() pour empêcher la fermeture de la console Windows. Pour relancer votre programme une nouvelle fois, il suffit d’appuyer sur CTRL+F6.

Important ! Python exige que l’indentation ne soit pas faite avec une tabulation mais avec 4 espaces. Pour cela, il faut aller dans Paramétrage / Préférences… puis, dans l’onglet Menu langage/Tabulation, on coche Insérer des espaces et on s’assure que Taille vaut 4.

Voici un aperçu du résultat avec NppExec. Vous remarquerez que j’ai cliqué sur le dernier bouton en haut à droite de la barre d’outils pour afficher tous les caractères. On constate que l’indentation est bien faite avec 4 points orange, symbolisant chacun une espace :

Exécution avec NppExec et résultat dans la console intégrée

 

Mise à jour du 08/08/2012 : après un temps d’utilisation, j’ai constaté plusieurs problèmes avec cette console intégrée (en tout cas avec la version que je possède). Les interactions en console sont un peu hasardeuses. Par exemple, si mon script contient raw_input(« Nombre ? = « ), je dois taper mon nombre et faire ENTRÉE avant de voir apparaitre le texte. De même, lors de l’utilisation d’une GUI avec Tk, il faut fermer la fenêtre Tk pour voir s’afficher tout le texte en attente dans la console. Lors de l’utilisation d’une GUI avec Qt, le programme se lance et rien ne s’affiche. Bref, ce plugin a encore des progrès à faire sur les flux de sa sortie, mais on espère que ça ira mieux dans quelques versions.
Il y a néanmoins toujours une raison de l’utiliser : si le programme plante, la console Windows se ferme mais pas celle intégrée. Pratique pour le débogage !


Outils XML pour Notepad++

Je me souviens avoir eu du mal à trouver un logiciel pour gérer les fichiers XML et les schémas XSD qui vont avec, quand je travaillais chez Sopra Group sur le recouvrement des impayés d’un grand opérateur de téléphonie mobile. Je manipulais des fichiers XML volumineux, je devrais créer des schémas XSD, valider des fichiers XML… Il existe des logiciels gratuits pas forcément exceptionnels et le logiciel de référence, XMLSpy, est payant.

J’aurais dû regarder du côté de Notepad++ !

Éditeur de texte indispensable pour tout développeur sous Windows, Notepad++ possède un plugin XML Tools basé sur la libXML. Ce plugin ne prétend pas remplacer XMLspy mais est bien suffisant pour de nombreuses tâches courantes. Le fait qu’il soit intégré à Notepad++ évite de lancer un autre logiciel alors que celui-ci est toujours lancé. Dans la suite de cet article, je vous expliquerai comment l’installer et donnerai un rapide aperçu des fonctionnalités. Un seul pré-requis : Notepad++ est installé sur votre ordinateur, le chemin d’installation est noté $RACINE_NOTEPAD.

Les fichiers DLL nécessaires à ce plugin sont disponibles sur SourceForge. Pour choisir la version du plugin, vous devez déterminer si votre Notepad++ est en version ANSI ou Unicode. Cette information est donnée dans le menu A propos (accessible par l’onglet ? ou avec le raccourci F1) :

Notepad++ - A propos

« A propos » de mon Notepad++

Je dispose d’une version Unicode, j’ai donc choisi l’archive : xmltools_2.3.2_r908_unicode_beta4.zip. Il suffit alors de déposer le fichier XMLTools.dll qu’elle contient dans $RACINE_NOTEPAD/plugins. Comme je l’ai évoqué plus haut, le plugin fait appel à des bibliothèques que les développeurs ont gentiment regroupées dans le dossier ext_libs contenu dans l’archive. Comme expliqué dans le fichier texte les accompagnant, ces 4 fichiers DLL doivent quant à eux être déposés dans le même dossier que le fichier notepad.exe, donc dans $RACINE_NOTEPAD.

On (re)démarre le logiciel et le nouveau plugin est disponible :

Notepad++ - XML Tools

Accès au plugin XML Tools

Les noms des fonctionnalités sont explicites, je n’ai pas besoin d’en dire beaucoup plus. Rapidement :

  • Le premier groupe sert à la vérification de la syntaxe du fichier. Les messages d’erreur que j’ai eu lors de mes tests n’étaient pas très précis mais au moins on sait s’il y a un problème.
  • Le seconde groupe sert à la validation d’un fichier XML en le confrontant à son schéma XSD. Je n’ai pas testé la fonction.
  • Cochez Tag auto-close pour que la balise fermante soit automatiquement ajoutée quand vous terminez la balise ouvrante.
  • Set XML type automatically sélectionne XML dans le menu Langage, apparemment uniquement pour les fichiers dont le langage n’est pas reconnu. Mon fichier main.c s’est correctement coloré par exemple.
  • Le cinquième groupe permet une indentation ou une linéarisation du fichier. Dans l’image ci-dessus, le fichier est linéaire. Un pretty print et hop ! il s’affiche tout joli ! Un linarize file et mon fichier reprend son apparence d’origine.
  • Les deux fonctions XPath du sixième groupe sont bien pratiques pour tester une requête XPath avant de la mettre dans son code.
  • J’adore l’avant-dernier groupe !

Enjoy !

PS : même sans ce plugin, Notepad++ sait colorer les balises correspondantes dans un fichier XML. Il suffit de sélectionner XML dans le menu Langage. On clique sur une balise, elle et sa balise correspondante sont colorées automatiquement ; si aucune autre balise ne se colore, alors le fichier est mal formé.