Dans Intellij IDEA, comment remplacer du texte par une nouvelle ligne?

119

Disons que je voulais remplacer toutes les virgules par des virgules et une nouvelle ligne en utilisant la fonction de remplacement d'Intellij IDEA. Que dois-je mettre dans le champ de recherche? Dans vim j'utiliserais & \ r

Bjorn
la source

Réponses:

171

Vous devez cocher la case Regex et utiliser "\ n" pour le caractère de nouvelle ligne:

entrez la description de l'image ici

Andrey Chaschev
la source
Et comment pouvez-vous supprimer une ligne vide en utilisant la même expression régulière. :)
muasif80
96

Utilisez le bouton Multiline, aucun Regex n'est nécessaire.

modifier: le bouton multiligne est absent depuis IntelliJ 15, mais vous pouvez l'activer en cliquant dans le champ de texte et en appuyant sur Alt+EnterouCtrl+Shift+Enter

Meo
la source
5
J'utilise 15, et il semble que la fonctionnalité multiligne n'existe plus. Pourquoi supprimeraient-ils une fonctionnalité aussi utile?
Matthew Cornell
4
Cela existe toujours, sélectionnez plusieurs lignes, puis cliquez CTRL+F, puis cliquez CTRL+R, cela semble être une fonctionnalité cachée, mais fonctionne toujours dans ce cas comme les versions précédentes
wired00
6
C'est encore plus facile maintenant - une flèche de chariot de retour visible apparaît dans les cases de recherche ou de remplacement - en cliquant dessus, vous insérerez une nouvelle ligne.
Louis St-Amour
8

Appuyez sur CTRL+Fet cochez la regexcase. Ensuite, recherchez ,et remplacez-le par ,\n.

kmera
la source
7

La façon la plus simple de le faire est d'utiliser la forme d'expression régulière de replace.

entrez la description de l'image ici

Il y a de fortes chances que vous ne vouliez pas remplacer le {, mais continuez à les échapper si vous le souhaitez.

pickypg
la source
Ha-ha, on dirait que tout le monde le sait.
Andrey Chaschev
C'est le cas, et il semble que vous soyez plus rapide avec Paint :). PS: Si vous ne l'avez pas essayé, alors je vous suggère fortement la Darcula! C'est tellement plus facile pour mes yeux.
pickypg
1
C'est PicPick que j'utilise. J'ai essayé le thème Idea Darcula, mais je suppose que je suis trop habitué aux couleurs par défaut.
Andrey Chaschev
4

Pour ceux qui recherchent l'ancien remplacement multiligne dans inteliJ avec la version> 15.x. Cela semble quelque peu caché, mais si vous sélectionnez plusieurs lignes> cliquez CTRL+F, puis cliquez immédiatement sur CTRL+Rle remplacement de multiligne d'origine.

Cela fonctionne sur Mac IntelliJ 2016.1.3avec ⌘ + F> ⌘ + R

entrez la description de l'image ici

filaire00
la source
3
vous appuyez simplement sur ALT + Entrée, avec le focus dans le champ de texte
Meo
Même avec cette astuce, il n'est pas possible de saisir plusieurs lignes dans le champ de remplacement.
Daniele Torino
Cela fonctionne bien pour moi IntelliJ 2016.1.3sur MAC, ⌘ + F> ⌘ + R
filaire
4

Pour Intellij Ultimate 2017.3 sur Mac, command-shift-enterfonctionne

wiena wu
la source
1
Cette réponse est légitime et fonctionne pour la recherche et le remplacement dans IntelliJ IDEA, PHPStorm et WebStorm où l'utilisateur souhaite remplacer une instance de \npar une nouvelle ligne réelle. Veuillez ne pas rejeter les réponses utiles.
Bartekus
1

Sur intellij Ultimate 2017.1:

Je n'avais pas besoin de regex. Mais je pourrais faire apparaître le remplacement multiligne.

  • J'ai entré \ n dans le champ que je voulais remplacer
  • J'ai placé mon curseur dans le champ où je voulais entrer le texte de remplacement et j'ai cliqué sur Ctrl-Maj + Entrée. Ici, je viens de frapper le retour

entrez la description de l'image ici

Somaiah Kumbera
la source
0

Une approche propre consisterait à ajouter (?m)devant l'expression régulière, qui active le mode multiligne. Cela présente l'avantage que vous pouvez également l'utiliser dans la recherche globale de fichiers (Ctrl-Maj-F).

Exemple: (?m)\{(.|\n)*?\}recherche des blocs multilignes entourés d'accolades.

Spheenik
la source
0

Le est lié mais pas exactement ce que vous avez demandé. Mais j'en avais besoin et je peux imaginer que d'autres le font. J'ai donc eu le problème dans Node.js où je voulais diviser un rejet en appel dans un journal et rejeter pour plus de clarté

reject(error)

dans

appLogger.log(error, 'error') reject(error)

En mode normal, j'ai trouvé et remplacé

Trouver: reject(error)

Remplacer: appLogger.log(error, 'error')\n reject(error)

Puis en mode regex, j'ai fait une deuxième recherche et remplacement:

Trouver: \\n

Remplacer \n

Dr Code Singe
la source
Si votre réponse est utile, mais ne répond pas réellement à cette question, il est préférable de poser une nouvelle question et d'y ajouter votre réponse. Nous accueillons toujours de nouvelles questions et réponses utiles, et nous sommes encouragés à répondre à votre propre question si vous le pouvez :)
Max Vollmer
0

Ctrl+ Shift+ R pendant que le texte remplacé est sélectionné :

Cela fonctionne pour Remplacer dans le chemin (WebStorm 2018.2.3):

entrez la description de l'image ici

voir ici

Félix
la source