Weil ichÄndern Python Einzug Menge in Emacs
(setq python-indent-offset 4)
in meiner .emacs haben, wenn ich mit dem Code wie
def fn():
foo = bar()
if bar1 == bar2:
if blah1 == blah2:
return yay
und Mark-ganze-Puffer (Cx h) beginnen, gefolgt von indent-Region (CM- \), erwarte ich bin zu:
def fn():
foo = bar()
if bar1 == bar2:
if blah1 == blah2:
return yay
aber ich bekomme statt:
Noch Eindruck-Bereich funktioniert gut mit geschweiften Klammern-getrennte Sprachen. Gibt es einen Weg, um es mit einer Einrückung-basierten Sprache wie Python zu arbeiten?
Bitte beachten Sie:
- Ich bin aware von Reindent aber ich möchte in Emacs bleiben.
- Ich bin gut vertraut mit string-rectangle (C-x r t) and python-indent-shift-right/left (C-c >), aber weder diese noch ihre Varianten tun, was ich frage.
Das Problem scheint zu sein, dass es in 'python-indent-region' eine Überprüfung gibt, ob die Zeile auf einem Blockstart steht. Wenn es sich um einen Blockstart handelt (wie in einer if-Anweisung), wird die Zeile übersprungen und die Einrückung nicht geändert. Sie sollten es als Fehler erhöhen. – Jules