2016-05-14 2 views
2

Ich habe meine Emacs für Python-Entwicklung eingerichtet. Ich benutze elpy und andere Tools wie autopep8, pylint und flycheck, um Feedback von emacs für syntaktische und Stilprobleme zu bekommen. Ich verwende Räume für den Einzug, was der vorgeschlagene Ansatz ist (pep8). Alles funktioniert gut.emacs: Python Set Tabs für Einzug (Problem mit Pyint, Autopep8, Flycheck etc.)

Bei Job verwenden wir Tabs für den Einzug und ich möchte meine Emacs dafür einrichten. Ich habe zu meinen Emacs folgendes hinzugefügt und es scheint OK zu funktionieren.

(add-hook 'python-mode-hook 
(lambda() 
    (setq indent-tabs-mode t) 
    (setq python-indent 4) 
    (setq tab-width 4))) 

Das Problem ist, dass, nachdem Sie diese Zeilen hinzufügen ich eine Reihe von Problemen mit Pylint bekommen, autopep8 usw.

Zum Beispiel Pylint für die Verwendung von Tabs beschwert, behebt autopep8 automatisch Tabs und ersetzt sie durch Leerzeichen und eine Reihe anderer Fehler, die mit der Tatsache zusammenhängen, dass ich anstelle von Leerzeichen Tabulatoren verwende.

Ich könnte einige der Fehlerprüfungen (zB E123 etc.) abschalten und dann könnte ich vielleicht mit pylint, autopep8, flycheck usw. arbeiten lassen. Eigentlich habe ich es ein bisschen ausprobiert und ich denke, ich könnte es aber funktionieren lassen es scheint wie ein "brutaler" Ansatz.

Gibt es eine elegante/nette Möglichkeit, Emacs mit Tabs anstelle von Leerzeichen zum Einrücken in Python zu arbeiten und gleichzeitig Beschwerden von anderen Plugins (pylint, autopep8, flycheck usw.) möglichst zu vermeiden?

Antwort

1

Ich benutze nicht autopep8 oder flycheck, aber ich benutze pylint. Sie können die Option --indent-string von pylint verwenden, um Registerkarten anstelle von Leerzeichen zu verwenden.

(setq pylint-options (append pylint-options '("--indent-string=' '")))