0

Emacs の Python モードには、前の行の開き括弧に対して、括弧と括弧からの行継続を自動的にインデントする厄介な「機能」があります。だから私たちは次のようなものを得る

myfunc(a, b, c,
       d, e, f)

これは、ファイル全体のインデントに一貫性がないように見えるだけでなく、次のようなものが得られるため、面倒です。

myfunc(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, (x,
                                                                             y, z))

(これは通常、列のサイズに基づいて自動的に行われることを説明するために非常に長くしました)

myfunc にさらに引数を追加すると、すべてx.

最初の行よりも 4 スペース多く追加の行を常にインデントするようにします。に対する継続\は正しいことをしているようです (ただし、私はめったに を使用しないため、100% 正しいとは言えません\)。たとえば、上記に必要なものは次のようになります

myfunc(a, b, c,
    d, e, f)

myfunc(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, (x,
    y, z))

だから私は python-mode.el でバックスラッシュ行の継続を伴う適切なインデントの逆が欲しいと思います。

4

2 に答える 2

0

私はまだ Lisp に慣れていないので、ソース コードを編集せずにこれを行うこともできたでしょうが、私にとっては、これが最も簡単な方法です。これを削除するためにhttps://github.com/asmeurer/python.el/tree/indentationを変更python.elしました。ドットの自動配置 ( emacs の複数行の python インデントなど) も削除しましたが、これは別のコミットです。

于 2013-03-17T22:23:37.207 に答える
0

値は py-compute-indentation から取得されます。現在のトランクの python-mode.el の 5091 行目です。

bzr ブランチ lp:python-mode

そこでブール値を導入します: (if my-boolean py-indent-offset (INSTEAD OF COUMPUTED VALUE RETURNED...

ブロックデザインと混同せず、そのままの価値が妥当と思えるOTOH

于 2012-09-17T12:18:38.447 に答える