Der Atom-Texteditor entfernt beim Speichern nachfolgende Leerzeichen


116

Ich benutze Sublime text. Jetzt versuche ich es Atom. Wenn ich eine Datei in erhabenem Text speichere, enthält sie keine nachgestellte Leerzeile. Beim Speichern einer Datei Atombleibt jedoch eine nachgestellte Leerzeile. Wie zwinge ich, Atomkeine nachgestellten Leerzeichen zu hinterlassen?


3
Atom hält sich standardmäßig an die POSIX-Definition einer Zeile: "A sequence of zero or more non- <newline> characters plus a terminating <newline> character." - stackoverflow.com/questions/729692
12.

Antworten:


191

PreferencesGehen Sie unter Ihrem Atom zur PackagesRegisterkarte und suchen Sie nach whitespace. Klicken Sie auf das whitespacePaket und deaktivieren Sie die Ensure Single Trailing NewlineOption

Geben Sie hier die Bildbeschreibung ein


30
Ich denke, es ist noch besser, wenn wir das Kontrollkästchen "Leerzeichen in der aktuellen Zeile ignorieren" deaktivieren. Dadurch wird das nachgestellte Leerzeichen der aktuellen Zeile zum Zeitpunkt des Speicherns der Datei entfernt.
Gagan

Könnte diese Nachricht kryptischer werden? Lol - Ich bin nur überglücklich, dass Atom das Diff einer langen Datei entstellt, weil ein anderer Entwickler einige nachgestellte Leerzeichen hinterlassen hat, nur um festzustellen, dass es nicht möglich ist, diese Einstellung anhand des Namens zu finden. Wenige .. Hat jemand bemerkt, dass sich der Name von "Paket" in "Einstellungen" geändert hat?
jcalfee314

5
Möglicherweise ist dies eine neue Einstellung, aber Remove Trailing Whitespaceam Ende des settingsAbschnitts befindet sich ein Kontrollkästchen . Wenn Sie das Kontrollkästchen deaktivieren, bleiben alle nachgestellten Leerzeichen erhalten.
Bluecollarcoder

19

Auf globaler Ebene kann dies mit settingsin Whitespacepackage geändert werden. Wenn Sie es jedoch für eine bestimmte Sprache deaktivieren möchten, müssen Sie in Ihrer config.cson syntaxabhängige Eigenschaften verwenden.

'.text.html.php': # php overrides
  whitespace:
    ensureSingleTrailingNewline: false
    removeTrailingWhitespace: false

'.source.ruby': # ruby overrides
  whitespace:
    ensureSingleTrailingNewline: false
    removeTrailingWhitespace: false

Um den Umfang der Sprache zu sehen, gehen Sie zur PackagesRegisterkarte und suchen Sie nach Ihrer Sprache.

Klicken Sie auf die Einstellungen des Sprachpakets und Sie können den Umfang sehen:


1
Ihre Antwort ist noch detaillierter als die offiziellen Dokumente unter github.com/atom/whitespace. Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu tun! :-) Ich würde Atom gerne so konfigurieren, aber ich kann es nicht zum Laufen bringen. Atom verwandelt in meinen jinja2-Dateien immer wieder zwei nachfolgende Zeilenumbrüche in einen einzigen. Umfang ist .text.html.jinja, Konfiguration stimmt mit Ihrer überein, funktioniert aber nicht. Global ist es dann :-(
ssc

Das Bild, das zeigt, wie der Bereich gefunden wird, war besonders nützlich. Ich habe seitdem auch die Bereiche gefunden, die in der Grammatikauswahl aufgeführt sind (standardmäßig rechts neben den Zeilenenden, Zeilennummer und Codierung am unteren Rand des Fensters oder mit der Standardverknüpfung ctrl+shift+L).
Steve

9

Gehen Sie zu Paketen und suchen Sie nach "Leerzeichen", gehen Sie zu den Einstellungen und deaktivieren Sie das letzte Kontrollkästchen.

die Einstellungen Screenshot der Einstellungen

Kontrollkästchen Kontrollkästchen Screenshot


0

Zur Antwort von Dan Moldavan hinzufügen .

Dieses Problem trat bei der Arbeit an einer Rails-Anwendung auf.

Ich habe eine .editorconfigDatei mit den folgenden Eigenschaften hinzugefügt :

# editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

Und ich habe eine .gitattributesDatei mit den folgenden Eigenschaften hinzugefügt :

# Enforce Unix newlines
* text=auto eol=lf

Und dann warf mein Atom Editor ein Problem:

1 Problem mit .gitattributes

Leerzeichen: Möglicherweise verhindert das "Leerzeichen" -Paket, dass die folgenden Eigenschaften zuverlässig funktionieren: insert_final_newline, trim_trailing_whitespace. Sie können versuchen, das "Whitespace" -Paket neu zu konfigurieren oder zu deaktivieren, um Probleme zu lösen.

So habe ich es behoben :

  • Öffnen Sie Ihren Atom Editor
  • Gehen Sie zu Bearbeiten> Einstellungen> Pakete
  • Geben Sie Leerzeichen ein
  • Klicken Sie auf das Paket, das angezeigt wird
  • Deaktivieren Sie Folgendes:
    • Stellen Sie eine einzelne nachfolgende Newline sicher
    • Leerzeichen in der aktuellen Zeile ignorieren
  • Lassen Sie "Nur Leerzeichen ignorieren" deaktiviert

Screenshot des Fixes

Speichern und schließen Sie die Einstellungen.

Das ist alles.

ich hoffe das hilft

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.