Wie kann ich abschließende Leerzeichen mit Notepad ++ automatisch entfernen?


69

Ich möchte die leeren Zeilen nicht vollständig löschen, aber die nachfolgenden Tabulatoren und Leerzeichen in ihnen entfernen. Eclipse tut dies normalerweise (über eine Voreinstellung), wenn wir die Datei speichern.

Zum Beispiel die Datei vor dem Speichern ($ = Zeilenende):

def shuffle(list):$
    import random $
    $
    random.shuffle(list)
    $
$

... und wenn ich das im Editor speichere, macht Eclipse Folgendes:

def shuffle(list):$
    import random$
$
    random.shuffle(list)
$
$

Wie kann ich abschließende Leerzeichen mit Notepad ++ automatisch kürzen?


Führen Sie ein Suchen und Ersetzen für den regulären Ausdruck aus, um Leerzeichen aus mehreren Dateien gleichzeitig zu entfernen [ \t]+$. ( Screenshot ) ( Quelle )
Stevoisiak

Antworten:


73

Sie sollten in der Lage sein, einen regulären Ausdruck in Notepad ++ mit einem Muster wie dem folgenden zu suchen / ersetzen \s+$.

Es gibt auch einige Optionen unter Menü Bearbeiten -> Leere Operationen , die Ihren Anforderungen entsprechen können.

Im "Makro" -Menü gibt es eine Option zum "Trimmen und Speichern". Wenn Sie einen regulären Ausdruck erstellen müssen, kann es sein, dass Sie ein Makro erstellen können, das ich jedoch noch nie ausprobiert habe.


9
Ja, in meiner Version von Notepad ++ gibt es eine Edit -> Trim Trailing Space, aber kann ich das automatisch bei jedem Speichern auslösen?
Srikanth

5
Es gibt eine Option für "Trim Trailing and Save" im Makro-Menü
Johannes

22
Ich habe die Strg + S-Taste mit der Macro -> Trim Trailing and saveOption an die Option gebunden Settings -> Shortcut Mapper.... Das ist viel besser, als daran denken zu müssen, das Makro die ganze Zeit auszuführen. :)
Casey Kuball

Die Suche \s+$stimmt mit jeder leeren Zeile überein, unabhängig von Leerzeichen. Ich empfehle [ \t]+$stattdessen. (Siehe Wie entferne ich
abschließende

63

Alt+ Shift+ Smacht was du willst. Tatsächlich speichert es auch die Datei.

Aktualisieren

Wie bereits erwähnt, können Sie diesem Makro eine andere Verknüpfung zuweisen. Sie können Ihre Verknüpfungen unter Einstellungen> Verknüpfungszuordnung> [Makros] steuern .

Bildbeschreibung hier eingeben


10
So entfernen Sie nachgestellte Leerzeichen beim Speichern: (1) Entfernen Sie die Standardverknüpfung zum Speichern (Strg + S), und (2) weisen Sie Strg + S das Makro "Nachziehen und speichern" zu.
Donnerstag,

1
Um die Standardverknüpfung zu entfernen Save, doppelklicken Sie auf das ShortcutFeld und wählen Sie es Noneaus der Auswahlliste aus.
Mitch

2
Ich habe diese Seite gefunden, meine Verknüpfungen wie von Ihnen vorgeschlagen aktualisiert und sie bis zum heutigen Tag verwendet. Dann musste ich neulich eine neue Maschine einrichten und hatte völlig vergessen, wie ich es vorher gemacht hatte ... Nochmals gesucht und diese Antwort wiedergefunden! Du solltest +2 dafür bekommen, dass du mir so geholfen hast!
Stijn de Witt

Einstellungen> Verknüpfungs-Mapper, dann Registerkarte "Makros"
Bonob

Dies sollte die ausgewählte Antwort für mich sein ^^
Nam G VU

4

Plugins> Plugin Manager> Plugin Manager
anzeigen Wählen Sie auf der Registerkarte Verfügbar die Option EditorConfig und klicken Sie auf [Installieren].

Fügen Sie .editorconfigdem Ordner eine Datei hinzu (benennen Sie sie .editorconfig., um Windows-Fehler zu vermeiden "Sie müssen einen Dateinamen eingeben" - der letzte Punkt wird entfernt)

# trims trailing whitespace for all files; filter like [*.{json,xml}]
[*]
trim_trailing_whitespace = true

EditorConfig kann auch Kodierungs-, Einrückungs- und Zeilenumbruchzeichen usw. angeben.


1
Scheint, dass das EditorConfig-Plugin für Notepad ++ die Option trim_trailing_whitespace nicht unterstützt: github.com/editorconfig/editorconfig-notepad-plus-plus
jpa

1
Unterstützung für trim_trailing_whitespacewurde am 20.04.2016 hinzugefügt . / cc @jpa
Stijn

Ich wünschte, ich könnte das mehr befürworten, auch wenn es nur um den .editorconfig.Trick geht. Zu denken, dass ich all die Jahre wie ein Höhlenmensch auf die Erstellung von Punktedateien über die Eingabeaufforderung zurückgegriffen hatte.
Jamesdlin

4

Ich habe die Verknüpfungen geändert, um eine Lösung dafür zu finden. Ich entfernte die speichern Verknüpfung (Shortcut - Mapper -> Hauptmenü -> Speichern) und kartiert Ctrl+ Sauf die "Trim Schleppen und Speichern" Makro (Abkürzung Mapper -> Makros -> trimmen Hinter- und speichern). Auf diese Weise ersetzt das Makro die Speicherfunktion und es ist nicht erforderlich, sich die Alt+ Shift+ SVerknüpfung zu merken .


2

Die vorhandenen Antworten sehen alt aus.

Versuchen Sie es unter folgendem Pfad:

Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Space

1
Ich habe ein Makro in "Trim Trailing Spaces" aufgenommen UND "Tabs in Spaces konvertieren", um die Konsistenz bei der Versionskontrolle zu gewährleisten. Ich habe dann das Makro mit Tastenkombination gespeichert Atl-T. Alt-T, Ctrl-Sist eine schnelle Kombination zum Trimmen, Konvertieren und Speichern. Ich mache das absichtlich in zwei Schritten, wie ich nicht will Abschlag Dateien trimmen, oder Tabs ändern / Hinter , wenn andere Betreuer Dateien bearbeiten , die auf einen anderen Standard - Standard kann als ich. Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Spaceund Notepad++ > Edit (menu) > Blank Operations > TAB to Space. (N ++ hat auch ... Space to TABOptionen.)
SherylHohman

1

Ctrl+ F-> Wechseln Sie zur Registerkarte Ersetzen ->

Finde was: \ t \ r

Ersetzen durch: \ r

Stellen Sie sicher, dass der erweiterte Suchmodus aktiviert ist, und ersetzen Sie dann alle.

Wenn Sie auch speichern möchten, hat johanno die richtige Lösung. Macro -> Trim Trailing and Save funktioniert wie angegeben.


Diese Antwort ist veraltet
Antonio

1

Ein anderer Weg -

  1. Bearbeiten> Leervorgänge> Nicht benötigtes Leerzeichen und EOL entfernen
  2. Plugin> XML Tools> Pretty Print (nur XML - mit Zeilenumbrüchen)

'XML Tools' ist ein Plugin, das wir für Notepad ++ installieren können


1

Alt+ Shift+ SIst die Standard - Tastenkürzel für diese. Es ist in der Menüleiste als Macro -> Trim Trailing and save. Sie können dies unter erneut binden Settings -> Shortcut Mapper -> [Macros].

Erneutes Binden von "Trim Trailing and Save" über Shortcut Mapper

Aufbauend auf der Antwort von kon psych können Sie festlegen, dass Leerzeichen bei jedem Speichern automatisch abgeschnitten werden, um das Ctrl+ Standardverhalten zu ersetzen S. Denken Sie daran, die ursprüngliche Verknüpfung zum Speichern zu ändern oder zu entfernen, um Konflikte zu vermeiden.

Deaktivieren der Standardverknüpfung zum Speichern


+1 für "Denken Sie daran, die ursprüngliche Verknüpfung zum Speichern zu ändern oder zu entfernen, um Konflikte zu vermeiden."
Wafeeq

1

Um die vorhandenen Menübefehle beizubehalten, ordnen Sie (zuvor nicht zugewiesene) Ctrl+ Tnachgestellte Leerzeichen zu. Dann mache Ctrl+ Tund Ctrl+ Szusammen.

Auf diese Weise können Sie eine kleine Änderung an einer Datei vornehmen, ohne Textvergleichsprogramme und Versionsverwaltungsprogramme zu verwirren, indem Sie (möglicherweise) Hunderte von Zeilen ändern.


1

Dies sind die genauen Schritte , um die Standard - Umleitung „Speichern“ Verknüpfung Ctrl+ Szu tun , anstatt „Trim Schleppen und Speichern“

  • Einstellungen-> Shortcut Mapper ...
  • Hauptmenü, doppelklicken Sie auf "Speichern" und wechseln Sie Szu "Keine"
  • Doppelklicken Sie auf die Registerkarte "Makros", und ändern Sie sie in " Ctrl+"S

Die Makro-Verknüpfung kann auch über Makro-> Verknüpfung ändern / Makro löschen ... geändert werden.


Danke, das ist absolut die beste Antwort
Simon Tan
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.