【问题标题】:emacs: python set tabs for indentation (issue with pylint, autopep8, flycheck etc.)emacs:python 设置缩进标签(pylint、autopep8、flycheck 等问题)
【发布时间】:2016-05-14 16:23:18
【问题描述】:

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

【问题讨论】:

    标签: python emacs pylint elpy autopep8


    【解决方案1】:

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

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

    【讨论】:

    • 检查每行长度时是否可以忽略制表符(甚至是空格)?
    • 可能是--ignore-long-lines=<regexp>?见pylint --long-help
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 2021-10-27
    • 2015-05-03
    • 2020-12-29
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多