Using the Python shell in Vi mode on Windows

python, readline, vi, windows

Solution

Install PyReadline

Setup your `pyreadlineconfig.ini` and `PYTHONSTARTUPFILE` files as per the PyReadline instructions.

Then add the following to your `pyreadlineconfig.ini` file:

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

The history settings must be after the mode setting.

Commands such as `ESC` `K` to jump to the previous command now work.

Problem

I know that you can use the Python shell in Vi mode on Unix-like operating systems. For example, I have this line in my `~/.inputrc`: ``` set editing-mode vi ``` This lets me use Vi-style editing inside the Python shell. But can this be made to work when using Python on a Windows XP box? I'm using the pre-built Python for Windows downloaded directly from python.org. I'm guessing that the Windows version does not use the GNU Readline library, but I'd be happy to be proven wrong. :)

Original source