Das nachgestellte Leerzeichen ist für Programmierer ein Problem, da Editoren wie Emacs spezielle Funktionen haben, die es hervorheben oder automatisch entfernen, und viele Codierungsstandards erfordern, dass Sie alle Instanzen davon entfernen. Ich bin mir nicht ganz sicher warum. Ich kann mir einen praktischen Grund vorstellen, unnötige Leerzeichen zu vermeiden, und wenn die Leute nicht aufpassen, dass sie es vermeiden, können sie es zwischen Commits ändern, und dann werden Diffs mit scheinbar unveränderten Zeilen verschmutzt, nur weil jemand oder entfernt hat fügte ein Leerzeichen hinzu.
Das klingt schon nach einem guten Grund, es zu vermeiden, aber ich möchte sehen, ob mehr dahinter steckt. Warum ist das nachgestellte Leerzeichen so wichtig?
quelle
Antworten:
Gründe, die mir wichtig sind:
Wenn ich die Taste "Ende" drücke, wird der Cursor voraussichtlich ans Ende der Zeile springen (abhängig davon, welchen Editor ich verwende und wie er konfiguriert ist), und ich erwarte, dass ich in der Lage sein werde, sofort mit der Eingabe zu beginnen. Wenn der Cursor dorthin gelangt und ich 3 oder 4 Zeichen löschen muss, ist das ärgerlich. Vor allem, wenn es in der gesamten Datei (en) inkonsistent ist.
Wenn ich Zeichenfolgenliterale habe, die sich über mehrere Zeilen erstrecken, kann ein nachgestelltes Leerzeichen dazu führen, dass die Ausgabezeichenfolge bei Verwendung falsch aussieht.
Obwohl Whitespace nicht streng programmiert ist, kann es die Dateneingabe ernsthaft verfälschen, wenn eine Datei nachgestellt / vorangestellt wird, die analysiert und als Eingabe für etwas anderes verwendet wird. Dies ist am häufigsten der Fall, wenn eine saubere, generierte Eingabedatei durch eine Person verschmutzt wird, die sie in Excel oder einem anderen Format bearbeitet, und sich dann nachfolgende Leerzeichen (und andere Formatierungsprobleme) einschleichen können.
quelle
Ich hasse es wirklich, Leerzeichen zu schreiben, aber der genaue Grund ist ein bisschen vage.
Ich denke, der Ursprung dieses Gefühls liegt nicht in der Programmierung, sondern im Bereich Desktop Publishing. Haben Sie jemals ein Dokument von jemand anderem geschrieben bekommen, das in eine Publikation eingefügt werden musste? In allen modernen Veröffentlichungen, insbesondere bei der Verwendung von Spalten, ist es üblich, Sätze innerhalb eines Absatzes nacheinander anzuordnen, ohne für jeden Satz eine neue Zeile zu beginnen. Nun, wenn nachgestellte Leerzeichen vorhanden sind, ist viel mehr Aufwand erforderlich, um sie zu korrigieren (viele Such- und Ersetzungsaktionen, die doppelte Leerzeichen beseitigen, usw.).
Andere Gründe (in der Programmierung), keine guten Gründe, ich weiß, aber sie stören meine unterbewusste Psyche auf so erschwerende Weise, dass sie mich zwingen, sie zu beseitigen:
Ja Ja ich weiss! Ich weiß, das sind Junk-Gründe. Ich bin kein Perfektionist, aber ... nun, vielleicht bin ich das?
Der letzte Grund, den ich mir vorstellen kann, ist eine inkonsistente Cursorbewegung. Es fühlt sich an, als würde der Cursor am Ende einer Linie in Luft aufhängen. Jeder Schritt nach rechts kann dazu führen, dass er entweder abfällt oder in einem unbekannten Ausmaß weiter schwebt Mario sprang immer drauf).
Wahrscheinlich kann ich mit trailspacefobia diagnostiziert werden?
quelle
Viele dieser Antworten berühren fast den Grund, warum es schlecht für mich ist, aber im Grunde genommen: Es "bricht" Texteditoren. Meine Erfahrung ist mit vim.
Vim ist so konzipiert, dass gängige Aktionen Buchstaben so sauber zugeordnet werden, dass Sie nicht einmal darüber nachdenken müssen, welche Buchstaben- oder Tastenkombination Sie treffen möchten. Verschiedene Hotkeys ermöglichen es dem Cursor, so schnell durch den Text zu springen, dass nur wenige Tastatureingaben erforderlich sind, um ihn an den gewünschten Ort zu bringen. Sogar Dinge wie das Falten von Codeblöcken sind schnell, da Sie END oder $ drücken können, um zum Ende der Zeile zu springen, wo sich der Cursor überlappen sollte (oder) oder (oder) oder so - es ist nicht erforderlich, Ihren Gedankenfluss zu unterbrechen Holen Sie sich eine Idee auf den Bildschirm.
Dann folgt jedoch ein Leerzeichen, und die Bewegungen des Cursors sind nicht mehr vorhersehbar. Ihr Schreibvorgang wird unterbrochen, weil sich etwas, das Sie nicht sehen können, auf die Position des Cursors auswirkt. Sie müssen also Ihren Gedankengang unterbrechen, um ihn dahin zu senden, wo er sein sollte.
Haben Sie jemals bemerkt, wie verärgert Menschen sind, wenn sie sich wirklich auf eine Aufgabe konzentrieren und jemand sie unterbricht? Ja, es ist genau so, abschließende Leerzeichen zu finden, wenn es am wenigsten erwartet wird .
Als Randnotiz ist mir auch aufgefallen, dass Leute, die sich nicht für nachgestellte Leerzeichen interessieren, die Maus für die Navigation verwenden und deswegen in der Regel langsamer tippen ...
quelle
%s/ *$//
Überraschenderweise fehlt die naheliegendste Antwort: Nachgestellte Leerzeichen können und werden schwer zu findende Fehler verursachen.
Die naheliegendste Situation sind mehrzeilige Zeichenfolgen. Python, JavaScript und Bash sind einige Beispiele für Sprachen, die davon betroffen sein können:
produziert:
Das ist irgendwie kryptisch und schwierig zu lösen, wenn der Editor nicht für die Anzeige von Leerzeichen konfiguriert ist.
Während Syntax-Hervorhebung dabei helfen kann , solche Fälle zu vermeiden, ist es sogar noch einfacher, das Problem nicht an erster Stelle zu haben, indem Leerzeichen am Ende der Zeilen vermieden werden. Dies ist der Grund, warum einige Stilprüfer eine Warnung auslösen, wenn sie auf abschließende Leerzeichen stoßen, und einige Editoren sie automatisch zuschneiden.
Abbildung: Syntax-Hervorhebung kann dazu beitragen, nachgestellte Leerzeichen in Situationen zu vermeiden, in denen es zu Fehlern kommen kann, aber verlassen Sie sich nicht nur darauf.
Ein anderer Kontext, der in einer vorherigen Antwort kurz erwähnt wurde , sind Daten, die in Dateien gespeichert sind.
Zum Beispiel können CSV-Dateien, die nachgestellte Leerzeichen enthalten, zu Dateninkonsistenzen führen, die auch sehr schwer zu erkennen sind: Normkonforme Parser kürzen die Leerzeichen (die Norm gibt an, dass führende oder nachgestellte Leerzeichen irrelevant sind, sofern sie nicht in doppelte Anführungszeichen gesetzt werden), aber Einige Parser verhalten sich möglicherweise falsch und behalten das Leerzeichen als Teil eines Werts bei.
Andere benutzerdefinierte Formate berücksichtigen möglicherweise speziell, dass Leerzeichen Teil des Werts sind, was zu konsistenten, aber immer noch schwierig zu debuggenden Situationen führt.
quelle
Ich habe vor kurzem einen Tag damit verbracht, nach einem Fehler zu suchen, der sich als unerwartetes Leerzeichen in den Daten herausstellte.
quelle
Wenn ich Programm-Quellcode auswähle, um ihn zu kopieren und einzufügen (oder zu löschen), finde ich es etwas ärgerlich, den unregelmäßigen zusätzlichen Leerraum am Zeilenende zu sehen: Da ich den Code lesen muss, während ich ihn auswähle , der nachgestellte Leerraum ist ein unnötiges Geräusch. Beispiel (Punkte stehen für den Leerraum):
Dieses Beispiel ist künstlich, aber ich habe viel Code gesehen, der so aussieht.
quelle
Neben dem offensichtlichen Problem, dass es in bestimmten Fällen das Parsen bricht? Wie ein anderes Plakat festgestellt hat, kann es zu subtilen und schwer nachvollziehbaren Fehlern kommen. Leerzeichen sind nicht immer unbedeutend. In einigen Fällen kann ein nachgestelltes Leerzeichen die Bedeutung einer Code- oder Datenzeile erheblich verändern.
In den meisten Fällen dient Whitespace zum Formatieren des Codes für menschliche Leser. Nachgestellte Leerzeichen können auf verschiedene Dinge hinweisen, darunter:
Zwei davon können zu fehlerhaften Funktionen führen, und ein anderer kann das Verständnis des Codes erschweren.
quelle
Es gibt Programmiersprachen, die empfindlich auf Leerzeichen in der Endzeile reagieren. Beispielsweise gibt ein TCL-Skript einen Fehler aus, wenn am Ende einer Zeile ein Leerzeichen steht.
quelle