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

标签 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 等)的提示?

最佳答案

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

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

关于python - emacs:python 设置缩进选项卡(pylint、autopep8、flycheck 等问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37229099/

相关文章:

使用pylint的python代码约定

python - 使用 Django 时,Pylint 不会报告错误的导入顺序

emacs - 如何在连接到 lein swank 的 ClojureBox (EmacsW32) REPL 中抑制 ^M 字符

python - 从 HDF5 文件列表创建一个 dask 数据框

python - Django - URL 和命名空间

python - 通过python脚本读取.bash_history文件

git - egg.el 已加载但 egg-minor-mode 未启用(无 "C-x v"键绑定(bind))

emacs - 如何在Emacs中安装Melpa?

python - 如何配置 Pylint 以检查 PEP8 检查的所有内容?

python - += 更新 pandas datadame 中的行