Automatischer Einzug in Notepad ++

187

Wir schreiben immer Code wie folgt:

void main(){
  if(){
    if()
    }

Alt-Text

Aber wenn ich Notepad ++ benutze , ist die Anzeige:

void main(){
if(){
if()
}

Alt-Text

Wie verwende ich Notepad ++ zum automatischen Einrücken?

Dank Jonathan habe ich es eingestellt, aber es hat keine Wirkung. Der Schnappschuss ist unten:

Alt-Text

Ich verwende Notepad ++ Version 5.1.3.

Turion
quelle

Antworten:

135

Notepad ++ fügt nachfolgende Einrückungen nur dann automatisch ein, wenn Sie die erste Zeile in einem Block manuell einrücken. Andernfalls können Sie Ihren Code nachträglich erneut einrücken TextFX > TextFX Edit > Reindent C++ code.

Scronid
quelle
1
Wenn in Ihrer Version die DLL fehlt, können Sie sie aus der ZIP 5.9.0-Version herunterladen. Einige der späteren Versionen enthielten diese DLL nicht. notepad-plus-plus.org/download/v5.9.0.html
Fostah
2
Ich habe dies tatsächlich gefunden, als ich nach einer Möglichkeit gesucht habe, Javascript-Code zu formatieren. Es stellt sich heraus, dass dies auch für .js-Dateien funktioniert!
Heiliger Glaube
7
@Fostah: Sie können das "Text FX Character" auch über> Plugins> Plugin Manager> Plugin Manager anzeigen
Adrien Be
@scronide, gibt es dafür eine Tastenkombination?
Pacerier
Beachten Sie, dass trotz des Namens der Javascript-Code, dessen Einrückung ich korrigieren wollte, absolut korrekt wieder eingerückt wurde. Kein Grund erwarte ich würde es nicht zu, nur zu erwähnen, da der Name ist sehr spezifisch. Keine Ahnung, warum der Autor dieser Bibliothek das Gefühl hatte, C ++ besonders bevorzugen zu müssen ...: D
neminem
99

Wenn das TextFX-Menü nicht vorhanden ist, müssen Sie das Plugin herunterladen und installieren. Plugins-> Plugin Manager-> Plugin Manager anzeigen und dann das Plugin TextFX Characters überprüfen . Klicken Sie auf "Installieren" und starten Sie Notepad ++ neu.

In der Version Notepad ++ v6.1.3 löse ich mit: Plugin Manager-> Plugin Manager anzeigen ** und überprüfe dann das Plugin "Indent By Fold"

unbekannt
quelle
2
Einrückung durch Falten ist fantastisch. Die Tatsache, dass es in beliebiger Formatierung ( XML, C / ++ / # usw. ) funktioniert , ist großartig. Das einzige Problem dabei ist der "Undo" -Stack. Wenn Sie diese Option verwenden möchten, müssen Sie sie bei jedem erneuten Einrücken der Zeile rückgängig machen, wenn Sie sie bis zu einem Punkt rückgängig machen möchten , da sie nicht als einzelner Befehl zum Stapel hinzugefügt wird. Seien Sie grundsätzlich vorsichtig, wenn Sie mit langen Dateien arbeiten.
Dan Lugg
Hallo @ Dan, das Problem mit dem Rückgängigmachen scheint in der neueren Version von indent by fold
behoben
1
Ja, es existiert nicht und es gibt keinen Plugin Manager.
Beyondo
31

Es scheint zumindest eine Option für die automatische Formatierung von XML zu geben. Es kann bei gefunden werden TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.

Abhishek
quelle
2
Sie benötigen TextFx Plugin für diese
Arviman
29

Die meisten Entwickler von Textbearbeitungsprogrammen missbrauchen diesen Namen (automatischer Einzug). Der korrekte Name lautet "Einrückung beibehalten". Auto-Indent ist das, was Sie eigentlich wollen, aber es ist nicht implementiert.

Ich würde diese Funktion auch gerne in Notepad ++ sehen.

Peter Mortensen
quelle
22

In der neuesten Version (zumindest) finden Sie es über:

  • Einstellungen (Menü)
  • Einstellungen ...
  • MISC (Registerkarte)
  • Kontrollkästchenliste unten links
  • " Auto-Indent " ist die 2. Option in dieser Gruppe

[ EDIT ] Ich glaube jedoch nicht, dass Auto-Indent die beste Implementierung hatte. Stellen Sie daher sicher, dass Sie Version 5.1 haben - Auto-Indent wurde kürzlich überarbeitet, sodass Ihr Einzug automatisch korrigiert wird.


Beachten Sie auch, dass Sie den Block für den 2. verpassen if:

void main(){
  if(){
    if() { }  # here
  }
}
Jonathan Lonowski
quelle
8
Beachten Sie, dass bei dieser Einstellung für den automatischen Einzug in Notepad ++ davon ausgegangen wird, dass Sie den ersten Einzug in einem Block manuell vornehmen. Der Code wird für Sie nicht automatisch formatiert.
Scronide
Ich habe gerade deine Bedeutung verstanden, bitte vergib meinem armen Eng ... Meine Muttersprache ist Chinesisch ...
Turion
14

Sie können das Plugin 'Indent by Fold' verwenden. Installieren Sie es vom Plugin-Manager. Es funktioniert gut für mich.

Aki143S
quelle
2
Einrückung durch Falz ist großartig, außer dass es nur Einrückung durch Falz einnimmt;) In Situationen, in denen Sie eine Listeninitialisierung eingerückt haben, wird die Einrückung aufgehoben, es sei denn, die Sprache verwendet ein Faltzeichen, um den Initialisierer abzugrenzen. Ein Beispiel ist eine mehrzeilige Array-Initialisierung in PHP mit array( ... ), bei der ()keine Faltung erfolgt.
Dan Lugg
5

In der Version 6.6.8 habe ich das NppAutoIndent-Plugin über Plugins> Plugin Manager> Show Plugin Manager installiert. Dann habe ich die Option Smart Indent unter Plugin> NppAutoIndent ausgewählt. Hoffe das hilft.

TheRS
quelle
4

Ein kleines Update: Sie können das TextFX-Plugin überspringen und einfach Tidy2 verwenden . Hier können Sie Ihre eigenen Formatierungsregeln für verschiedene Codetypen konfigurieren. Einfach zu installieren und zu entfernen

Notepad ++> Plugins> Plugin Manager> Plugin Manager anzeigen

und suchen Sie einfach nach Tidy2 und installieren Sie es. Getan.

Sven Ya
quelle
Können Sie uns etwas mehr erklären?
Dieter Meemken
Weitere Informationen zur Konfiguration finden Sie hier: stackoverflow.com/questions/14865770/using-tydy2-for-notepad
Sven Ya
Es ist ziemlich schwierig, dies im Vergleich zu anderen Plugins zu verwenden
Gaurav Khurana
4

Für diejenigen, die Notepad ++ v6.8.1 und höher verwenden, wird die Einstellung für den automatischen Einzug jetzt im Menü EinstellungenEinstellungenMISC platziert. Automatischer Einzug .

Geben Sie hier die Bildbeschreibung ein

Luke
quelle
3

Probieren Sie das UniversalIndentGUI- Plugin für Notepad ++ aus. Code wird basierend auf einigen Parametern neu eingerückt. Es hat gut für mich funktioniert.

imriss
quelle
3
Beachten Sie, dass der Link direkt zum Download führt. Die Website lautet: universalindent.sourceforge.net . Dies scheint auch eine grafische Benutzeroberfläche zum Konfigurieren eines Neuformatierungswerkzeugs zu sein, anstatt den Text zunächst automatisch korrekt zu formatieren.
Martin Bonner unterstützt Monica
2

Das mag albern erscheinen, aber in der ursprünglichen Frage hat Turion eine einfache Textdatei bearbeitet. Stellen Sie sicher, dass Sie die richtige Sprache aus dem Menü Sprache auswählen

kurdtpage
quelle
2
Menu TextFX → TextFX Edit → Reindent C++ code

Geben Sie hier die Bildbeschreibung ein

Aber , Notepad ++ kommt nicht mit diesem "Text FX Character" Plugin. Sie müssen es über installieren

Plugins → Plugin Manager → Show Plugin Manager.

Hinzufügen einer Verknüpfung für Einrückung .

Klicken Sie auf EinstellungenShortcut Mapper ... und legen Sie die gewünschte Tastenkombination fest. Ich bevorzuge Ctrl+ =.

Geben Sie hier die Bildbeschreibung ein

Saurav Sahu
quelle
1

Installieren Sie das Tidy2-Plugin. Ich habe Notepad ++ v6.2.2 und Tidy2 funktioniert bisher einwandfrei.

user9717890
quelle
1

Laden Sie zuerst den Plugin-Manager über diesen Link herunter, entpacken Sie dann den Zip-Ordner und kopieren Sie ihn in Ihren Programm- / Editor ++ - Ordner. Starten Sie dann Ihren Editor ++ neu. Dann sehen Sie den Plugin-Manager im Plugin-Menü. Klicken Sie dann auf Plugin Manager und dann auf Show Plugin Manager. Es zeigt alle Ihre Plugin-Liste. Suchen Sie in der Liste unten nach XML-Tools, überprüfen Sie sie und installieren Sie sie. Starten Sie dann Ihren Editor ++ neu. Nach dem Öffnen eines Dokuments dann Plugins / XML-Tools / ziemlich einfach (Text einrücken) dann genießen.

Tapos Ghosh
quelle
0

Für diejenigen, die Version 7.8.5 verwenden, befinden sich die Einstellungen für den automatischen Einzug jetzt unter "Einstellungen" -> "Einstellungen ..." -> "Automatische Vervollständigung".

Geben Sie hier die Bildbeschreibung ein

ooi18
quelle
0

Versuchen Sie vorher, die Datei zu speichern, dann wird sie eingerückt.

Sh13
quelle
Es könnte ein Kommentar sein!
Farbod Ahmadian
Können Sie das etwas näher erläutern?
Toto