emacs:python设置缩进选项卡(pylint,autopep8,flycheck等问题)

时间:2016-05-14 16:23:18

标签: python emacs pylint elpy autopep8

我已经设置了用于python开发的emacs。我使用elpy和其他工具(如autopep8,pylint和flycheck)从emacs获取语法和样式问题的反馈。我使用空格来缩进,这是建议的方法(pep8)。一切正常。

在工作中我们使用标签进行缩进,我想为此设置我的emacs。我将以下内容添加到我的emacs中,似乎工作正常。

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

问题是在添加这些行后,我遇到了许多pylint,autopep8等问题。

例如,pylint抱怨使用选项卡,autopep8会自动修复选项卡并用空格替换它们以及与我使用制表符而不是空格这一事实相关的许多其他错误。

我可以禁用一些错误检查(例如E123等)然后我可以使用pylint,autopep8,flycheck等。实际上我尝试了一点,我想我可以让它工作但它似乎是一种“野蛮”的做法。

是否有一种优雅/整洁的方法可以让emacs使用制表符而不是python中的缩进空格,同时尽可能避免来自其他插件(pylint,autopep8,flycheck等)的投诉?

1 个答案:

答案 0 :(得分:1)

我不使用autopep8或flycheck,但我使用pylint。您可以使用pylint的--indent-string选项来使用制表符而不是空格。

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