在Windows上使用Vi模式的Python shell

6 投票
3 回答
1823 浏览
提问于 2025-04-15 16:38

我知道在类Unix操作系统上,你可以在Python的命令行中使用Vi模式。例如,我在我的~/.inputrc文件里有这么一行:

set editing-mode vi

这让我可以在Python命令行中使用Vi风格的编辑。

但是在Windows XP上使用Python的时候,这能实现吗?我是在python.org上直接下载的预编译Python版本。

我猜Windows版本可能不使用GNU Readline库,但如果我错了,我很乐意接受纠正。:)

3 个回答

0

我自己回答自己的问题,看来可以使用 PyReadline 这个库,配合 IPython,这样就能实现我在Linux上缺失的大部分Vi功能。不过我还是没弄明白怎么按 ESC 然后按 k 来浏览之前的命令历史。

2

cygwin 可以让你在“Windows XP电脑”上享受到很多类似Unix系统的好处(比如它有自己的Python版本,这样就能避免一些“标准Windows版本”中的限制)——快去试试吧!

4

安装 PyReadline

按照 PyReadline 的说明,设置好你的 pyreadlineconfig.iniPYTHONSTARTUPFILE 文件。

然后在你的 pyreadlineconfig.ini 文件中添加以下内容:

set_mode("vi")
history_filename("~/.pythonhistory")
history_length(200)

历史记录的设置必须放在模式设置之后。

现在可以使用像 ESC K 这样的命令来跳转到之前的命令了。

撰写回答