Rechercher et remplacer par une nouvelle ligne dans Visual Studio Code

397

J'essaie le nouvel éditeur de code Microsoft Visual Studio dans l'environnement Linux Fedora. Je voudrais savoir comment remplacer la nouvelle ligne (\ n) à la place d'un autre texte.

Par exemple, j'ai du texte html comme celui-ci

<tag><tag> 

que je voudrais remplacer comme

<tag>
<tag>

En sublime, j'utiliserais un modèle d'expression régulière et trouverais "> <" et le remplacerais par "> \ n <" Comment puis-je accomplir cela dans Visual Studio Code?

Sriram
la source
@RobertMacLean cette question a été posée avant la question identifiée ci-dessus
Sriram
1
@RobertMacLean créant un cycle en double
Kishan Kumar
As-tu vu ça.? stackoverflow.com/a/50042582/6597375
Deepu Reghunath
En fait pas un doublon: L'autre question porte sur le retour chariot, celui-ci sur la nouvelle ligne, et non la réponse ne fonctionne pas pour le retour chariot pour une raison quelconque.
Jason Young

Réponses:

581

Dans la zone de recherche locale ( ctrl+ f), vous pouvez insérer des retours à la ligne en appuyant sur ctrl+ enter.

Image de la recherche multiligne dans la recherche locale

Si vous utilisez la recherche globale ( ctrl+ shift+ f), vous pouvez insérer des retours à la ligne en appuyant sur shift+ enter.

Image de la recherche multiligne dans la recherche globale

Si vous souhaitez rechercher des multilignes par le littéral de caractère, n'oubliez pas de vérifier l' icône d'expression régulière la plus à droite .

Image du mode regex dans la recherche remplacer


Dans les versions précédentes du code Visual Studio, cela était difficile, voire impossible. Les versions plus anciennes vous obligent à utiliser le mode regex, les versions plus anciennes ne prenaient pas en charge la recherche de nouvelle ligne.

Håkon Egset Harnes
la source
6
Ni dans la version 0.10.3. Mais il existe une extension qui peut le faire: marketplace.visualstudio.com/items/jmallien.ReplaceWithNewline
rmac
14
Notez que le remplacement par des caractères de nouvelle ligne est pris en charge, mais la recherche de caractères de nouvelle ligne ne fonctionne toujours pas tant que github.com/Microsoft/vscode/issues/313 n'est pas résolu.
C Snover
2
Cela ne fonctionne pas sur le mac - il remplace littéralement \ r ou \ n
Naveen Vijay
38
Notez que le mode regex doit être activé. Sinon, il n'utilisera pas de nouvelle ligne.
neves
12
regex rechercher \\net remplacer par des \ntravaux pour moi, en utilisant 1.25.0
Gregor
130

Avec la version 1.38 de VS Code, vous pouvez appuyer sur CTRL+ Enterdans la zone de recherche de l'éditeur pour ajouter un caractère de nouvelle ligne.

entrez la description de l'image ici

Avec VS Code version 1.30, vous pouvez taper Shift+ Enterdans la zone de recherche pour ajouter un caractère de nouvelle ligne sans avoir besoin d'utiliser le mode regex.

entrez la description de l'image ici

Depuis la version 1.3 de VS Code , la recherche d'expression régulière a pris en charge les caractères de nouvelle ligne. Pour utiliser cette fonction, réglez la fenêtre de recherche en mode regex et utilisez-la \ncomme caractère de nouvelle ligne.

Recherche multiligne dans VS Code gif

Élégant
la source
Cela m'a donné un petit coup de pouce dans la bonne direction. J'avais besoin de la ligne vide pour remplacer les commentaires HTML: <!--[\s\S\n]*?-->Et il me manquait le \ n :)
Guntram
J'adore cette fonctionnalité, fonctionne également dans les champs de recherche et de remplacement!
SimplyInk
5
Ne fonctionne toujours pas dans la barre latérale de recherche ctrl + shift + f ... -_-
Xunnamius
61

Dans la version 1.1.1:

  • Ctrl+H
  • Vérifiez l'icône exp régulière .*
  • Chercher: ><
  • Remplacer: >\n<
Eric Bole-Feysot
la source
15
Merci d'avoir mentionné que vous devez appuyer sur l'icône regexp!
Paul Chernoch du
24

Notez également, après avoir frappé l'icône regex, pour remplacer réellement le \ntexte par une nouvelle ligne, j'ai dû utiliser \\ncomme recherche et \ncomme remplacement.

Stiv Ostenberg
la source
1
Salut @Stiv super astuce mais cela aurait vraiment dû être un commentaire car il ne répond pas à la question.
Chic
Peut-être pas regardé dans les commentaires ... c'était la réponse dont j'avais besoin. Merci @stiv!
Jack Ryan
16

Une solution de contournement possible serait d'utiliser le multi-curseur. sélectionnez la partie> <de votre exemple, utilisez Ctrl+ Shift+ Lou sélectionnez toutes les occurrences. Utilisez ensuite les touches fléchées pour déplacer tous les curseurs entre les balises et appuyez sur Entrée pour insérer une nouvelle ligne partout.

Cela ne fonctionnera pas dans toutes les situations.

Vous pouvez également utiliser Ctrl+ Dpour sélectionner la correspondance suivante, ce qui ajoute la correspondance suivante à la sélection et ajoute un curseur. Et utilisez Ctrl+ K Ctrl+ Dpour ignorer une sélection.

Bastiaan Deknudt
la source
Ctrl+Dc'est super! Vous devrez peut-être appuyer d' Ctrl+Fabord et après quelques Ctrl+Dsecondes ou sauter avec Ctrl+K Ctrl+D, vous pouvez appuyer sur Escpour placer le curseur dans toutes les sélections!
CPHPython
4

Sur ma version mac de VS Code, je sélectionne la section, puis le raccourci est Ctrl+ jpour supprimer les sauts de ligne.

tripleonard
la source
1

avec la v1.31.1 en mode RegEx, la fonctionnalité Remplacer tout est rompue. cliquer sur ce bouton ne remplace qu'une seule instance

ekkis
la source
1

CTRL+ H, puis sélectionnez regex (*) et écrivez \ n

Version plus courte: CTRL+ H ALT+ R\ n

TomoMiha
la source