Wie kann ich den ecacs 'cperl-mode' alle Anweisungsfortsetzungen um nur eine Ebene einrücken lassen?

8

Im Emacs-Modus werden Zeilen, die eine Anweisung aus einer vorherigen Zeile fortsetzen, um eine Ebene eingerückt:

%Vor%

Wenn die Anweisung jedoch nicht bei null Einrückung beginnt, weil sie sich in einem Block befindet, erhalten Sie, wenn Sie Ihre Anweisung in eine dritte Zeile aufteilen, eine andere Einrückungsebene und so weiter:

%Vor%

Gibt es eine Möglichkeit, das zu beheben, damit Anweisungen innerhalb von Blöcken genauso eingerückt werden wie außerhalb? Ich möchte, dass das zweite Beispiel so aussieht:

%Vor%     
Ryan Thompson 27.08.2010, 08:24
quelle

3 Antworten

6

Ich bestätige, dass das beschriebene Verhalten vorhanden ist, aber wenn man die Quellen liest und unter dem Debugger läuft, ist es nicht offensichtlich, dass es eine Anpassung gibt, die dir das Verhalten (und ich ) wollen.

Deshalb denke ich, das ist ein Fehler in cperl-mode .

Das Problem ist:

%Vor%

Bitte testen Sie diesen Patch; Wenn Sie damit zufrieden sind, werde ich eine Anpassung hinzufügen, um es zu aktivieren.

    
sds 26.12.2012, 16:32
quelle
1

cperl-mode haben dieses Problem standardmäßig nicht. Standardmäßig sieht es folgendermaßen aus:

%Vor%

Sie haben eine Anpassung, die verhindert, dass cperl-mode korrekt eingerückt wird. Siehe cperl-indent-rules-alist Variable für die Konfiguration des Eindrucks.

    
Jérôme Radix 27.08.2010 09:28
quelle
0

Wie @ Jeromer-Radix sagt, tritt das Problem nicht standardmäßig mit cperl-mode auf. Das Problem könnte sicherlich in cperl-indent-rules-alist , aber es gibt eine Reihe von anderen Orten zu sehen.

Welche Version des Modus verwenden Sie? C-h v cperl-Version RET

Beim Debuggen dieser Art von Frage müssen Sie mit ein paar grundlegenden Dingen beginnen, um zu sehen, ob Sie den Fehler reproduzieren können. Lassen Sie zuerst alle wissen, welche M-x emacs-Version Sie gerade ausführen. Dann eliminieren Sie Ihre eigenen Anpassungen aus der Gleichung, indem Sie emacs -q ausführen, um zu vermeiden, dass Ihre Init-Datei beim Start geladen wird:

%Vor%

Wenn Sie das Problem weiterhin mit Ihrer eigenen init-Datei reproduzieren können, gehen Sie einen Schritt weiter und schalten Sie es auf Systemebene mit emacs -Q :

aus %Vor%     
aculich 26.12.2012 01:05
quelle