【问题标题】:python-mode.el not allowing indentation after if statementpython-mode.el 不允许在 if 语句后缩进
【发布时间】:2013-06-11 11:05:30
【问题描述】:

我已经搜索了所有内容,我只能找到类似的问题:improper exiting from indentation in emacs python-mode 有人无法从正确的缩进中退出。

每当我创建一个 if 语句时,说

if(foo):
    bar()

Python 模式不允许我缩进小节线,迫使我将其保留为

if(foo):
bar()

这会引发缩进错误。这发生在所有 .py 文件中。使用 python.el 时效果很好,但我更喜欢 python-mode 的功能。有没有其他人找到解决方案/遇到这个问题?

我的 .emacs 文件只是加载 python-mode 的行。

【问题讨论】:

  • 我没有 emacs,但您是否尝试过在 if 之后放置一个空格,这是典型的做法?括号也是多余的,尽管我怀疑这会破坏任何东西。
  • 我都试过了,但似乎都没有任何作用。我只好手动添加空格。
  • 您关于更喜欢 python-mode.el 功能的评论让我担心(作为 Emacs 维护者,他一直在处理 Emacs w.r.t Python 支持中包含的内容)。显然,SO 不是讨论它的地方,但是请向我们发送一些关于 python-mode.el 的特性的 cmets 到 emacs-devel 或 bug-gnu-emacs。
  • 也许你可以试试@sanityinc 在stackoverflow.com/questions/2111041/… 中描述的方式。

标签: python emacs emacs24 python-mode


【解决方案1】:

这是一个错误。感谢报道。

https://bugs.launchpad.net/python-mode/+bug/1191133

这已在后备箱中修复。请参阅修订版 1266,位于

https://launchpad.net/python-mode

也应该出现在

https://github.com/emacsmirror/python-mode

安德烈亚斯

【讨论】:

    【解决方案2】:

    否则,正如我之前评论的那样,如果问题仍然无法解决,我认为您最好从 ELPA 下载最新的 python-mode,它应该运行 M-x package-list-packages 然后将以下语句放入您的 .emacs 文件中。我正在使用 python-mode-6.0.10 并且效果很好。

    (require 'python-mode)
    

    【讨论】:

    • 看不到 ELPA 分发的 python-mode.el。通过集市推荐当前主干:bzr branch lp:python-mode。最后一个版本在这里:https://launchpad.net/python-mode/+download
    • 把下面放到你的 .emacs 中,也许它在 melpa 包列表中
    • (require 'package) (add-to-list 'package-archives '("marmalade" . "marmalade-repo.org/packages/")) (add-to-list 'package-archives '("melpa" . "melpa.milkbox.net/packages/")) (add-to-list 'package-archives '("org" . "orgmode.org/elpa/") t) (package-initialize)
    猜你喜欢
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2021-12-16
    • 2019-11-29
    相关资源
    最近更新 更多