我有时会在开发 Python 模块时通过在终端中运行 Python 交互式提示、导入我的新模块并测试其功能来测试它们。当然,由于我的代码正在开发中,因此存在错误,并且需要经常重新启动解释器。当我在重新启动之前只执行了几行解释器时,这并不太痛苦:当解释器重新启动时我的键序列看起来像Up Up Enter Up Up Enter
......但是将其推断为要重复的 5 个或更多语句,它会变得非常痛苦!
当然,我可以将我的测试代码放入我执行的脚本中python -i
,但这是一个临时活动,以至于打开文本编辑器似乎不太“超过阈值”:) 我真正渴望的是Ctrl-r
来自 bash shell 的行为:在 bash 中按顺序执行 10 个命令的序列涉及在历史记录中查找命令(重复Up
或Ctrl-r
搜索——两者都在 Python 解释器 shell 中工作),然后只需按Ctrl-o
十次。我最喜欢的 bash shell 功能之一。
问题是,虽然许多其他 readline 绑定功能(如Ctrl-a
、Ctrl-e
、Ctrl-r
和Ctrl-s
在 Python 解释器中工作)Ctrl-o
却没有。我无法在网上找到对此的任何引用,尽管也许该readline
模块可用于将此功能添加到python
提示中。有什么建议么?
编辑:是的,我知道使用交互式解释器不是一种超出几行的开发方法!但是对于小测试来说很方便,IMO 的交互性可以帮助判断一个开发的 API 是自然方便还是过于繁重。因此,请限制对 readline 历史步进是否可以在 python 中工作的技术问题的答案,而不是关于是否应该或不应该选择(有时)以这种方式工作的侧面意见!
编辑:自从发布以来,我意识到我已经在使用该readline
模块来使一些 Python 解释器历史功能工作。operate-and-get-next
但是似乎不支持Ctrl-o 绑定到readline 命令,即使我放入readline.parse_and_bind("Control-o: operate-and-get-next")
了我的PYTHONSTARTUP
文件。