2010-09-03 23 views
1

J'aime utiliser python-mode.el et (gnu) emacs pour éditer mes fichiers python. Si j'utilise des parenthèses pour des suites multilignes, l'indentation fonctionne comme je l'espère. Par exemple,Indendation correcte avec les continuations de ligne de barre oblique inversée en mode python.el

foo_long_long_long_long = (
    bar_long_long_long_long[ 
     (x_long_long_long_long == X) & 
     (y_long_long_long_long == Y)]) 

est juste comme je l'aime. D'autre part, si j'utilise une barre oblique inverse pour les suites, une seule indentation est créée et toutes les lignes suivantes arrêtent d'utiliser la logique d'indentation supplémentaire. Ci-dessous, les troisième et quatrième lignes ne parviennent pas à avoir une indentation

foo_long_long_long_long = \ 
    bar_long_long_long_long[ 
    (x_long_long_long_long == X) & 
    (y_long_long_long_long == Y)] 

Quelqu'un sait comment résoudre python-mode.el (5.1.0) de sorte que les continuations backslash indent le même que continuations parenthèse?


EDIT: Bien que je suis heureux de simplement utiliser parens toute la journée (python est après tout, plutôt Lisp comme ...), je collabore avec d'autres qui utilisent continuations backslash. Emacs bousille l'indentation quand j'appuie sur TAB, ce que je fais souvent comme réflexe. Ce serait bien de pouvoir éditer leurs fichiers et qu'emacs conserve toutes ses astuces d'indentation quand on travaille avec des suites de lignes d'antislash.

Répondre

2

N'utilisez pas les suites noires.

+0

Pour mon propre code, c'est ce que je l'ai fait. Ceci est malheureusement problématique lorsque je travaille sur des fichiers écrits par des collaborateurs qui préfèrent les continuations backslash qui fonctionnent bien dans leurs éditeurs non-emacs. Quand j'édite leurs fichiers, il est facile pour moi de gâcher l'indentation avec emacs (pas de façon sémantique, mais d'une manière esthétiquement déplaisante). –