readline vi mode in python interactive shell

T

tnoell

Hi comp.lang.python:
New to the group and new to python, so don't tear me up too much ...
I installed the GNU readline support in python2.4, and it is working,
but there is one annoying behaviour that I am hoping to squash ...

Namely, when I hit <esc> to go to edit mode, then hit 'k' to go up in
the command history,
the prompt is put at the start of the line.

Other places I use vi mode command line editing (e.g., zsh), the
cursor is at the end of the previous command.

More often than not, I am wanting to edit the latter part of the
previous command, not the start.

Is there any way to tell readline to put the cursor at the end of the
command line when browsing them?

Thx for any light you can shinte,
Tim
 
M

Micah Elliott

Hi comp.lang.python:
New to the group and new to python, so don't tear me up too much ...
I installed the GNU readline support in python2.4, and it is working,
but there is one annoying behaviour that I am hoping to squash ...

Namely, when I hit <esc> to go to edit mode, then hit 'k' to go up
in the command history, the prompt is put at the start of the line.

Amazing that you brought this up right now; I was just thinking about
whether or not to bother posting my own annoyance (invisible last
history command) with readline 4.3-5 (default with Fedora Core 3) and
Python 2.4.2. Since you brought it up, here's my test case:

My ~/.inputrc simply contains "set editing-mode vi". When I start
python I type "print 'a'". Then "<Esc>k" to recall the last
command -- but the line is invisible! If I start editing the
blank/invisible line the text magically appears. Or if I press
"k" twice I have visible history again. So now I have in muscle
memory "<Esc>kkj" to get my last command :-(

This is not a problem on the same machine with older versions of python
that are installed. Is this worth filing a bug against python? I
didn't find anything reported on sf.net/projects/python.
Other places I use vi mode command line editing (e.g., zsh), the
cursor is at the end of the previous command. More often than not, I
am wanting to edit the latter part of the previous command, not the
start.

In bash "<Esc>k" puts me at the *beginning* of the line. Of course $
puts you where you want to be then, but I'm not sure how to affect the
behavior you're asking for; "help bind" might be useful, and "bind -P"
shows some mappings.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top