61 votes

Fonctionnalité de type Grep pour Notepad++ ?

J'aimerais disposer d'une fonctionnalité de type grep dans Notepad++.

Dans sa version la plus simple, je voudrais pouvoir copier toutes les lignes du tampon actuel qui contiennent le mot foo vers un nouveau buffer. Je peux utiliser le plugin TextFX pour masquer toutes les lignes sans foo mais cela ne fait pas tout ce que je veux (c'est perdu sur la page d'accueil). Alt - Tab Je ne peux pas copier uniquement les lignes correspondantes, etc.)

92voto

kev Points 11612

Ctrl + F --> aller à la Mark onglet --> basculer Ligne de signet --> Cliquez Mark All .

Sélectionnez le menu Recherche --> Bookmark --> Copier les lignes mises en signet .

15voto

Andrea Points 378

Je me posais justement la même question. Je ne sais pas si vous êtes au courant ; dans la boîte de dialogue Rechercher, vous pouvez Rechercher tout dans le document actuel ce qui fera apparaître une fenêtre en bas de page montrant les lignes correspondantes. Vous pouvez ensuite les copier dans un nouveau document.

Malheureusement, il inclut certaines informations superflues dans les résultats (numéro de ligne, etc.), mais vous pouvez les filtrer en utilisant le mode colonne.

4voto

Erik Kalkoken Points 141

Une autre solution intéressante consiste à utiliser le plugin NppExec pour ajouter une commande grep pour Notepad++.

Le principal avantage par rapport à la solution "Signets" est qu'elle s'exécute beaucoup plus rapidement, surtout pour les gros fichiers, et que vous n'avez pas à modifier votre fichier original. Notez que vous devez créer une fois un petit script pour rendre cette fonctionnalité disponible dans votre Notepad++.

Mon exemple de solution est pour Windows et j'utilise findtr qui est un outil de commande de type grep disponible sur toutes les machines Windows. Mais vous pouvez bien sûr aussi utiliser n'importe quel autre grep clone de votre choix.

Étape 1 : Installer le plugin NppExec

Aller à Plugins / Plugin Manager / Show Plugin Manager Faites défiler jusqu'à NppExec, sélectionnez ce plugin et cliquez sur Installer. Vous devrez peut-être redémarrer votre Notepad++ pour terminer le processus d'installation.

Etape 2 : Créer un petit script pour NppExec

Aller à Plugins / NppExec / Execute , entrez le script suivant et enregistrez-le sous le nom de "grep" :

SET local OUTFILE = "c:\temp\$(FILE_NAME).temp"
INPUTBOX "Input filter string"
cmd /c findstr $(INPUT) "$(FULL_CURRENT_PATH)" >$(OUTFILE)
NPP_OPEN $(OUTFILE)

(veuillez vérifier que le chemin pour le fichier OUTFILE fonctionne dans votre environnement).

Étape 3 : Ajoutez un élément de menu pour votre script. (facultatif)

Aller à Plugins / NppExec / Advanced Options choisissez le script "grep" sous la rubrique Associated script et cliquez sur OK pour enregistrer. Redémarrez Notepad comme demandé par NppExec pour terminer l'ajout du nouvel élément de menu.

Étape 4 : Ajoutez un raccourci pour votre script. (facultatif)

Aller à Settings / Shortcut Mapper / Plugin commands , faites défiler vers le bas pour trouver votre script commande "grep" et définissez un raccourci pour elle, par ex. ALT-G

-1voto

Kasumiru Points 1

Etape 5 : Créer script pour une sauvegarde rapide et un document grep.

Allez dans Plugins / NppExec / Execute, entrez le script suivant et enregistrez-le sous le nom de "grep" :

SET local AUTOSAVEFILE = " %tmp% ". \NpPPautosave.tmp "
SET local OUTFILE = " %tmp% ". \NpPPautosaveToGrep.temp "
NPP_SAVEAS "%tmp%". \NpPPfile.tmp "
INPUTBOX "Chaîne d'entrée pour GREP".
cmd /c findstr $(INPUT) $(AUTOSAVEFILE) > $(OUTFILE)
NPP_OPEN $(OUTFILE)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X