Suchen und Ersetzen in Visual Studio ersetzt nicht alle Vorkommen

9

Ich verwende ctrl + shift + f, um "Find and replace" auszulösen, gehe zum Tab "Replace in files".

Ich mache eine regexp Suche in der gesamten Lösung (die ungefähr 11000 Dateien enthält) für:

%Vor%

Ersetzen Sie das durch

%Vor%

Viele Dateien werden durch die Operation geändert, aber wenn ich nach der Operation eine bestimmte CSS-Datei öffne, kann ich immer noch Zeilen lesen wie:

%Vor%

Warum?

Wenn ich die gleiche Suche & amp; Ersetzen durch diese geöffnete Datei, die Operation wirkt sich auf die Datei aus.

Ich kann zahlreiche Dateien finden, die übrigens nicht geändert werden.

In der Fortschrittsanzeige, die beim Suchen und Ersetzen erscheint, sehe ich, dass jede Datei verarbeitet wird, nicht nur Dateien geöffnet werden.

    
Anders Lindén 10.12.2013, 10:48
quelle

1 Antwort

15

Ich treffe genau das gleiche Problem. Es scheint nur zu passieren, wenn ein regulärer Ausdruck verwendet wird. Ich weiß, dass die Dateien übereinstimmen, denn wenn ich nur "in Dateien suchen" auswähle, werden die richtigen Zeilen in den Dateien gefunden. Es scheint mir ein Fehler zu sein. Möglicherweise vertrauen Microsoft uns nicht, uns mit Regexen in den Fuß zu schießen. ;)

Die einzige Möglichkeit, das Problem zu lösen, war die Option:

  

Alle ersetzen öffnet alle Dateien mit Änderungen zum Bearbeiten

Wenn Sie diesen Warndialog nicht erhalten, haben Sie ihn möglicherweise deaktiviert, siehe hier .

Geben Sie dann einfach ALT f l ein, um alle Dateien zu speichern und alle zu schließen. Dies schien zu funktionieren, als es rund 200 Dateien mit Ersatz gab (der gesamte Satz an durchsuchten Dateien war ungefähr 10000). Ich bin mir nicht sicher, wie viele Dateien Visual Studio gleichzeitig geöffnet haben kann, daher stelle ich mir vor, dass es irgendwann nicht mehr funktionieren wird oder dass die Ersetzungen verpasst werden. In diesem Fall müssen Sie es möglicherweise mehrmals ausführen.

    
acarlon 14.02.2014, 03:59
quelle