OS X 上的 Python/editline:£ 符号似乎与 ed-prev-word 绑定

发布于 2024-07-06 18:36:32 字数 700 浏览 10 评论 0原文

在 Mac OS X 上,无法在 Python 交互式 shell 中输入英镑符号 (£)。

* Mac OS X 10.5.5
* Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
* European keyboard (£ is shift-3)

当我在Python交互式shell中输入shift-3时,我似乎调用了前一个单词功能,即光标将移动到该行中键入的最后一个“单词”(即空格分隔项)的开头。 当我回到 bash shell 时,输入 shift-3 只会产生一个 £,正如预期的那样。

这个版本的 Python 显然使用 editline 作为其交互式 shell,而不是 readline。 我猜测默认的编辑行键绑定之一将shift-3(或我输入shift-3时看到的任何编辑行)绑定到ed-prev-word命令。

我在 ~/.editrc 文件中尝试了一些方法来删除此绑定,但它们没有任何效果:

  • bind -r £
  • bind -r \243
  • bind -r \156

还有一个会导致总线错误:

  • bind £ \243

有什么想法吗?

On Mac OS X I can’t enter a pound sterling sign (£) into the Python interactive shell.

* Mac OS X 10.5.5
* Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17)
* European keyboard (£ is shift-3)

When I type shift-3 in the Python interactive shell, I seem to invoke the previous word function, i.e. the cursor will move to the start of the last “word” (i.e. space-delimited item) typed on the line. When I’m back in the bash shell, typing shift-3 just produces a £, as expected.

This version of Python apparently uses editline for its interactive shell, as opposed to readline. I’m guessing that one of the default editline key bindings binds shift-3 (or whatever editline sees when I type shift-3) to the ed-prev-word command.

I’ve tried a few things in my ~/.editrc file to remove this binding, and they don’t have any effect:

  • bind -r £
  • bind -r \243
  • bind -r \156

And another that causes a bus error:

  • bind £ \243

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文