Entfernen Sie leere Zeilen im Eclipse-Code-Editor durch Suchen / Ersetzen (Strg + F)

7

Ich möchte alle leeren Zeilen aus meinem Code durch die Methode find / replace im Eclipse-Code-Editor entfernen.

Ich habe den regulären Ausdruck \n\s*\n verwendet, um alle Leerzeilen zu finden, habe aber den Fehler "Incompatible line delimiter near index 55110" erhalten, wenn die Leerzeile durch eine beliebige Zeichenfolge ersetzt wurde.

Warum habe ich diesen Fehler und wie kann ich die Leerzeilen entfernen? Was wird das funktionierende Ersatzzeichen?

Gibt es ein Eclipse-Plugin für diese Art von Job?

    
gtiwari333 08.07.2011, 04:04
quelle

7 Antworten

9

Sie können versuchen, dies zu ersetzen:

%Vor%

mit der leeren Zeichenfolge.

    
wjans 08.07.2011, 05:06
quelle
10

Ich bin mir nicht sicher, ob es sich um die Antwort auf Ihr spezifisches Problem handelt, aber die Lösung mit dem \ r \ .. weist darauf hin, dass es sich um eine Inkompatibilität zwischen Windows und UNIX-Textcodierung handelt. Eine einfache Lösung besteht also darin, die Datei in die UNIX-Kodierung

zu konvertieren

In Eclipse Menu -> File -> Convert line delimiter -> Unix

    
sivi 14.01.2014 14:33
quelle
3

Ich habe deinen Ausdruck ausprobiert und dabei einige Zeilen kombiniert. Ich fand dieses hier:

%Vor%

mit einer Ersetzung von [nichts].

Kann aber nicht mit dem mysteriösen Fehler helfen. Ich frage mich, ob Sie eine korrupte Datei haben, vielleicht eine streunende CR / LF-Verwirrung.

(Wie für ein Plugin ... kenne keine, aber, naja, lerne awk, sed, perl ... sie werden dir immer gut für deine diversen Text-Mangling-Jobs dienen.)

    
david van brink 08.07.2011 04:08
quelle
2

Als Reaktion auf den ersten Teil Ihrer Frage zum Fehler incompatible line delimiter near index scheint Eclipse ein Problem mit dem Ersetzen des angegebenen Zeilentrennzeichens in Abhängigkeit von den Einstellungen Text file encoding und New text file line delimiter zu haben.

Ich hatte ein Problem, bei dem eine Windows-Anwendung irrtümlich UNIX-formatierte Quelldateien formatierte und CRLF dort einfügte, wo sie es für richtig hielt. Aufgrund der besonderen Situation musste ich alle CRLFs durch Platz ersetzen. Eclipse erlaubte mir dies aufgrund dieses Fehlers nicht, aber das Ergreifen der vorhergehenden und nachfolgenden Zeichen machte den Trick:

%Vor%

Mit wjans vorgeschlagene Antwort:

%Vor%

Ich hoffe, das hilft denen, die immer noch den incompatible line delimiter Fehler bekommen.

    
Nick J. R. T. 24.09.2013 21:16
quelle
1

versuche% \R anstelle von \n

zu verwenden
  

\ R Beliebige Unicode-Zeilenumbruchfolge \ u000D \ u000A | [\ u000A \ u000B \ u000C \ u000D \ u0085 \ u2028 \ u2029]

    
iTake 24.03.2014 09:02
quelle
0

Das funktionierte für mich seit Jahren:

Ersetzen: [\ t] + $

Mit Leerzeichen

    
Ernani Joppert 04.03.2012 07:44
quelle
0

Ich habe dieses Problem (oder Variationen davon) seit Jahren und ich vermute, dass es durch das Teilen von Dateiservern mit Mac-Benutzern, insbesondere Benutzern von Dreamweaver (im Prinzip Grafikern), verursacht wurde. Es sieht so aus, als ob es die Dateien, die es bearbeitet (Uploads?), In gemischte / seltsame Zeilenenden ändert, die eine Kombination aus NL + CR (hex 0a0d), doppelter CR (0d0d) und solidarischen Zeilenumbrüchen (0a) zu sein scheinen.

Wenn Sie die gleiche Datei in vim geöffnet haben, ist sie nicht doppelt beabstandet, aber die Zeilen enden alle mit einem ^ M Symbol.

Wie auch immer, keine der Lösungen auf dieser Seite hat für mich funktioniert, aber ich habe etwas gefunden, das funktioniert.

Sie müssen diese Schritte der Reihe nach ausführen (Eclipse 4.2.2)

1.) Datei - & gt; Line Delimiter konvertieren nach - & gt; MacOS 9 (CR, \ r)

2.) Bearbeiten - & gt; Suchen / Ersetzen (Strg - F)

%Vor%

3.) Alle ersetzen

Wenn Sie es nicht in der richtigen Reihenfolge machen oder Sie sich zuerst mit der Datei anlegen, erhalten Sie eine Fehlermeldung über "inkompatible Zeilenbegrenzer" wie in der Frage.

    
SpliFF 24.06.2014 19:30
quelle

Tags und Links