Emacs24 Python Outline Overwrite Mod中的覆盖行为

2024-04-26 22:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在ubuntu14.04上使用emacs24编写一些python代码。我最近从Ubuntu12.04和emacs23升级,看起来emacs中新的python模式被称为“py outl”。我试过研究这种模式,但找不到我的特殊问题。

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

假设我有:

y = 'abcdefghij'

使用覆盖,我想把它改成:

^{pr2}$

实际上,我得到的是:

y = '1b2d3f4h5j'

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

有人能解决这个问题吗?

更新:我遵循了Andreas Röhler和Thomas的建议,在下面我运行了emacs -Q python-mode,我的问题没有重现。然后,我将~/.emacs文件平分,没有任何东西引起我的问题。

我确实解决了我的问题:卸载并重新安装emacs24,尝试新的python模式,最后从~/.emacs.d/elpa/中删除新的python模式目录。我承认这可能不是解决这个问题的最佳方法,但是现在在我的emacs窗口中显示的模式是Python,就像以前一样。

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


Tags: 文件代码py键入顺序模式emacsinsert
2条回答

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

您看到的模式行信息(“py outl”)暗示您使用的是Andreas Röhler's python-mode,据我所知,它不是标准gnuemacs附带的。(至少当我在ubuntu14.04上启动emacs24.3.1时,我得到了一个不同的模式行。但是,当我下载Röhler的python模式时,我确实也得到了“py outl”)。类似地,“ovwrt”部分表示^{}是活动的。

我建议您使用-Q选项启动emacs,以检查行为是否持续。如果没有,那么配置中的某些内容可能会导致您看到的效果。Bisecting your ^{} file是找到犯罪者的一种方法。

无法复制,覆盖模式可以很好地与当前python配合使用-模式.el. 假设某个“智能”模式是cutable。

正如Thomas建议的:进入python所在的目录-模式.el驻留:emacs-qpython-模式.el. M-x计算缓冲区RET加载它。然后再试一次。

请将错误报告提交到

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

或者

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

相关问题 更多 >