2

我已经为 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 等)的投诉?

4

1 回答 1

1

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

(setq pylint-options (append pylint-options '("--indent-string='    '")))
于 2016-05-16T04:28:08.397 回答