132 votes

Notepad++ Multi édition

Comment puis-je avoir plusieurs curseurs dans Notepad++ ?

Je vais avoir quelques valeurs délimitées par des tabulations. J'ai besoin d'écrire une requête pour toutes ces valeurs. Par exemple, si je reçois un fichier Excel avec des valeurs comme celles-ci :

1234 xyz pqr
2345 sdf kkk
...

Je veux copier l'ensemble de ces données dans Notepad++ et écrire la requête, en insérant toutes les valeurs en une seule fois.

Comme ça :

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

J'avais l'habitude de le faire avec mon précédent éditeur de texte Ultraedit. Peut-on le faire avec Notepad++ ?

4 votes

Er... Utilisez SublimeText. :)

0 votes

Je fais tout le temps cela avec Notepad++, mais je suis coincé avec UltraEdit pour ce travail... Comment faire avec UltraEdit :)

185voto

BoltClock Points 249668

Oui : il suffit d'appuyer et de maintenir la touche Alt cliquez et faites glisser pour sélectionner les lignes dont vous souhaitez modifier les colonnes, puis commencez à taper.

Vous pouvez également vous rendre sur Paramètres > Préférences... et dans le Modification de activez la fonction d'édition multiple pour permettre la sélection de plusieurs régions ou colonnes de texte distinctes à éditer en même temps.

C'est beaucoup plus intuitif, car vous pouvez voir vos modifications en direct pendant que vous tapez.

0 votes

Ici, 2013, v5.2 : Il n'y a pas (plus) d'onglet Édition ou d'option d'édition multiple.

0 votes

@Wouter : C'est toujours là pour moi dans la v6.2... si ce n'est pas présent dans la v5.2, alors quelque chose d'autre peut être faux, mais je ne peux pas commenter davantage.

0 votes

@BoltClock : Cool ! Quelque part entre la version v5.2 et la v6.2, cette fonctionnalité a dû être ajoutée. Ou peut-être qu'elle s'est perdue momentanément quelque part avant cela :)

22voto

Niels van der Rest Points 11802

Vous pouvez utiliser Edit > Column Editor... pour insérer du texte à la ligne actuelle et aux lignes suivantes. Le raccourci est Alt + C .

6voto

cr45hin Points 31

La méthode la plus simple pour résoudre votre problème (sans passer par un autre éditeur ou apprendre le regex) est d'enregistrer une macro.

  • Placez votre curseur au début de votre texte, cliquez sur le bouton "Enregistrer" dans le ruban, puis modifiez uniquement cette ligne de texte. Vous pouvez uniquement utiliser les touches fléchées ou les touches ctrl+flèche pour vous déplacer dans les caractères/mots plutôt que de cliquer avec votre souris. Les touches "home" et "end" sont également utiles.
  • Lorsque vous avez terminé cette ligne, déplacez votre curseur (toujours sans utiliser la souris) jusqu'au début de la ligne suivante.
  • Cliquez sur le bouton "arrêter l'enregistrement".
  • Cliquez sur le bouton "Jouer la macro" pour vérifier qu'elle fonctionne sur la ligne suivante comme prévu.
  • Cliquez sur "exécuter la macro plusieurs fois" pour la refaire, et encore, et encore... :P

L'avantage de cette méthode par rapport aux curseurs "multi-éditeurs" est que vous n'avez pas à cliquer manuellement et à placer des curseurs sur chaque ligne. Le second avantage est que vous pouvez travailler avec des données délimitées par des tabulations qui n'ont pas une taille/longueur constante - utilisez simplement ctrl+gauche/droite pour sauter des mots.

Honnêtement, les macros dans N++ ont sauvé environ un an de ma vie.

2voto

CAD bloke Points 2986

Un peu tard mais Maintenez la touche ALT et sélectionnez une tranche verticale si vous voulez taper la même chose dans la même colonne sur des lignes successives.

Ou, comme ci-dessus, activez l'édition multiple et, tout en maintenant la touche Ctrl enfoncée, cliquez aux endroits que vous voulez éditer.

Relié : Si vous cherchez ceci dans Visual Studio : http://www.hanselman.com/blog/SimultaneousEditingForVisualStudioWithTheFreeMultiEditExtension.aspx

1voto

Wouter Points 308

Notepad++ ne permet que l'édition en colonnes. Ce n'est pas tout à fait la même chose que les curseurs multiples.

Sublime Text a une merveilleuse implémentation de ceci, cela peut valoir la peine de vérifier...
Il s'agit d'un éditeur relativement récent (2011) qui gagne rapidement en popularité : http://www.google.com/trends/explore#q=Notepad%2B%2B%2C%20Sublime%20Text&cmpt=q

Edit : Apparemment quelque part autour de Notepad++ version 6.x l'édition multi-curseur a été ajoutée, mais il y a encore quelques fonctionnalités plus avancées pour cela dans Sublime, comme "sélectionner l'occurrence suivante".

0 votes

L'édition multi-curseur de npp est loin d'être aussi bonne que l'édition multi-ligne de sublime.

1 votes

Correction : l'édition multi-curseur de npp est loin d'être aussi bonne que l'édition multi-ligne de sublime by par défaut . La bibliothèque scintilla permet d'utiliser toutes les fonctionnalités prises en charge par sublime. Tout utilisateur peut télécharger un plugin tel que nppscripts ou pythonscript pour accéder au cadre npp sous-jacent et mapper ces scripts en raccourcis clavier, émulant ainsi toutes les commandes de sublime. Pour ceux qui ne veulent pas s'embêter à configurer leur éditeur, il est tout à fait possible de payer pour sublime.

0 votes

Je comprends votre point de vue mais il n'est pas juste de demander à un utilisateur régulier de devoir script le framework de l'éditeur sous-jacent pour une fonctionnalité normale. Je serais d'accord avec vous si un plugin faisait déjà cela (si j'avais plus de temps, j'en ferais un). Aussi ce post récent sourceforge.net/p/scintilla/feature-requests/1085 dit "surligner le suivant" pourrait être facile à faire, mais vous ne pouvez toujours pas avoir la fonctionnalité de la touche fléchée. Je me demande à quel point il serait facile d'implémenter "sauter" également ? Mettre en évidence le texte suivant, passer au suivant et les flèches peuvent tous être utiles à certains moments.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X