【问题标题】:Overwrite Behavior in Emacs24 Python Outline Overwrite ModeEmacs24 Python大纲覆盖模式中的覆盖行为
【发布时间】:2016-05-27 03:26:47
【问题描述】:

我在 ubuntu 14.04 上使用 emacs24 来编写一些 python 代码。我最近从 ubuntu 12.04 和 emacs23 升级,似乎 emacs 中的新 python 模式称为“py outl”。我已尝试研究此模式,但找不到我的特定问题。

我想使用“py outl ovwrt”模式覆盖我的代码中的一些值(我只是按了插入键)。但是,在这种模式下键入替换值时,emacs 的行为会很奇怪。

说我有:

y = 'abcdefghij'

并使用覆盖我想将其更改为:

y = '12345fghij'

实际发生的事情是我得到:

y = '1b2d3f4h5j'

我只是按顺序输入数字,而不是自己移动光标。 Emacs 每次都将光标移到一个额外的字符上。也许这种行为在这种新的 python 模式中是预期的,但这不是我习惯的,也不是我想要的。 emacs 这样做有什么特别的原因吗?它只发生在 *.py 文件中。在普通文本文件中,我得到了我期望的覆盖模式。

有人能解决这个问题吗?

更新:我结合了 Andreas Röhler 和 Thomas 的以下建议,在其中运行了 emacs -Q python-mode,但我的问题没有重现。然后我将我的~/.emacs 文件一分为二,没有任何问题导致我的问题。

我确实通过卸载和重新安装 Emacs 24、尝试新的 python 模式、最后从~/.emacs.d/elpa/ 中删除新的 python 模式目录的随机组合解决了我的问题。我承认这可能不是最好的方法,但现在在我的 emacs 窗口中显示的模式是 Python 和以前一样。

不幸的是,这意味着我仍然不确定到底是什么导致了我的问题,尽管我怀疑这可能与我从 ubuntu 12.04 升级到 14.04 有关。

【问题讨论】:

    标签: python ubuntu emacs overwrite


    【解决方案1】:

    无法重现,覆盖模式与当前的 python-mode.el 配合得很好。 假设某些“智能”模式是可杯的。

    按照 Thomas 的建议:进入 python-mode.el 所在的目录:emacs -Q python-mode.el。 M-x evaluate-buffer RET 加载它。然后再试一次。

    请将错误报告提交至

    https://gitlab.com/groups/python-mode-devs/issues

    https://bugs.launchpad.net/python-mode

    【讨论】:

    • 啊,是的,实际加载模式是个好主意,否则-Q 会禁止!我在自己的回答中忘记了这一点。
    【解决方案2】:

    我无法重现您观察到的行为。

    您看到的模式行信息(“py outl”)暗示您正在使用Andreas Röhler's python-mode,据我所知,这不是标准 GNU Emacs 附带的。 (至少当我在 Ubuntu 14.04 上启动 emacs 24.3.1 时,我得到了不同的模式行。但是,当我下载 Röhler 的 python 模式时,我也得到了“py outl”。)请注意,“outl”部分是指到outline-minor-mode(见this页面上的第4段)。同样,“ovwrt”部分表示overwrite-mode处于活动状态。

    我建议您使用 -Q 选项启动 emacs 以检查行为是否仍然存在。如果不是,那么您的配置中的某些内容可能会导致您看到的效果。 Bisecting your ~/.emacs file 是找到肇事者的一种方式。

    【讨论】:

    • 谢谢。让我补充一下:该模式由 Barry Warsaw 指导,并从很多人那里获得了代码 - 同时也做出了很多贡献,对吧。
    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 2011-11-03
    • 2011-04-28
    • 1970-01-01
    • 2011-06-11
    • 2012-01-28
    • 2022-01-18
    • 2015-10-25
    相关资源
    最近更新 更多