【问题标题】:Emacs adds extra spaces to quoted strings when editing Python filesEmacs 在编辑 Python 文件时为带引号的字符串添加了额外的空格
【发布时间】:2014-06-14 15:05:38
【问题描述】:

在 emacs 中处理 Python 文件时,我遇到了一个问题,如果我在输入带引号的字符串时暂停并且在该文本的末尾有一个空格字符,我会自动前进到下一个制表位。即,

"""Foobar """

变成

"""Foobar  """

我对使用 emacs 既老又新(我在 20 多年前第一次尝试使用它,但现在我正在认真地尝试进行转换),但我一直无法弄清楚这是怎么回事。我尝试了以下方法:

  • 禁用所有额外的模块。
  • 禁用我的 init.el 文件的部分。
  • 禁用我的 init.el 文件中的所有内容。
  • 使用“emacs -Q”启动 emacs(这是唯一有效的方法)。

我使用的任何其他模式都不会发生这种情况。如果我加载任何附加模块,它似乎会发生。

有人见过吗?

帮助?

【问题讨论】:

  • 我的第一个建议是,重新启动您的编辑器。希望这会解决它!
  • 顺便说一句:你对你所面临的问题的描述很好,但作为一个整体,这个问题肯定会受益于一个更好的标题。
  • @itsjeyd - 感谢您的建议。我会尝试编辑标题。 :-)
  • @S.M.AlMamun - 我已多次重新启动编辑器,但问题仍然存在。
  • Emacs 版本?我不明白您的示例如何有一个封闭的字符串,但是您却被暂停了?做什么?即将进入下一行?写个评论?我之前在 python 模式中目睹了怪异,但我无法重现您在谈论的内容,甚至无法完全理解您所描述的触发它的过程。

标签: emacs


【解决方案1】:

某些钩子似乎插入了TAB,可能来自tab-to-tab-stop 函数。顺便说一句,正在使用哪个 python-mode - 来自 python.el 还是 python-mode.el?如果是后者,是哪个版本?

要找到钩子,M-x describe-key RET SPACE。它将打开一个帮助缓冲区,其中默认调用的钩子在底部提到。检查那里的功能。

【讨论】:

  • 我使用的是 python-mode 6.1.3。我会按照您的建议尝试追踪并报告。谢谢。
  • @DarthBob 谢谢。认为已经检测到该点。或许可以关注这里:bugs.launchpad.net/python-mode/+bug/1330045
  • @DarthBob 签入修复。请尝试使用当前主干。
  • 我从星期五开始一直离线,直到今天晚上才能尝试修复(这是我在家里特别遇到的问题;我的工作 emacs 配置略有不同;我没有还没有机会同步它们……)我今晚试试,然后回复你。感谢您的快速回复。
  • 嗯。我已经更新到最新的主干,但我仍然遇到这个问题。我将使用 describe 键,看看我是否能确定发生了什么。
猜你喜欢
  • 2016-02-25
  • 2016-08-24
  • 2018-06-29
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
  • 2020-11-25
  • 1970-01-01
相关资源
最近更新 更多