This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Issue, most possibly with new Readline
On 2/6/06, Eric Blake <ericblake@XXXXXXXXX> wrote:
> > After installing the latest readline updates (that fixed the earlier
> > prompt issue) I'm finding an issue with the vi command line interface.
> >
> > Basically, when I hit [ESC] then fwd slash (/) to search through the
> > history, it throws my cursor back to get beginning of the line (on top
> > of the prompt) and acts weird. This is in mrxvt, now if I do the same
> > in the basic cygwin bash shell i get this:
> >
> > v468929@TRD-CAX40JXD ~> /
> > âââââââââââââââââââââââââ
>
> I could not reproduce this with a quick check (I normally
> use set -o emacs, so I am practically clueless about
> vi mode). Also, I normally use a multiline prompt, which
> may be impacting things. I tried:
>
> $ echo $PS1
> \[\e]0;\w\a\e[0m\]\n\[\e[32m\]\u@\h \ \[\e[35m\](${PIPESTATUS[*]}) \[\e[33m\]~\[\e[0m\]\n\$
> eblake@eblake (0) ~
> $ echo hi
> hi
> eblake@eblake (0) ~
> $ [ESC]/e[ENTER] # those four keystrokes rewrite this line as:
> $ echo hi # with the cursor on the e
>
>
> What is your PS1? What settings do you have in your ~/.inputrc?
>
> One other thing to be aware of - readline 5.1 official patch 2
> was released this weekend, so I need to make a 5.1-3 cygwin
> release soon to incorporate it (it dealt with initialization issues
> with line-wrapping). I don't know if your bug would have been
> fixed by official patch 2, or whether I should spend more time
> investigating this first.
>
> --
> Eric Blake
> volunteer cygwin readline maintainer
>
> --
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
> Problem reports: http://cygwin.com/problems.html
> Documentation: http://cygwin.com/docs.html
> FAQ: http://cygwin.com/faq/
>
>
Eric,
Basically, when using VI as the command line editor the [ESC] puts the
line into command mode (just like pressing [ESC] within VI) then the /
says search (again it's the same command within VI) for whatever you
type next. So, "/ls" would return the latest command line that
included the letters "ls" and i can then press "n" to get the next
occurrence and "N" to move the opposite direction through the history,
it's quite handy.
Here is my PS1:
echo $PS1
\[\e]61;\u@\H\007\]\u@\H \W>
Here is my .inputrc (i've tried commenting out the whole thing,
commenting out sections and uncommenting sections, nothing seems to
make a difference except emacs/vi):
# the following line is actually
# equivalent to "\C-?": delete-char
"\e[3~": delete-char
# VT
#"\e[1~": beginning-of-line
#"\e[4~": end-of-line
# kvt
#"\e[H": beginning-of-line
#"\e[F": end-of-line
# rxvt and konsole (i.e. the KDE-app...)
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
# VT220
#"\eOH": beginning-of-line
#"\eOF": end-of-line
set keymap vi
set editing-mode vi
# Allow 8-bit input/output
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
$if Bash
# Don't ring bell on completion
set bell-style none
# or, don't beep at me - show me
set bell-style visible
# Filename completion/expansion
set completion-ignore-case on
set show-all-if-ambiguous on
# Expand homedir name
set expand-tilde on
# Append "/" to all dirnames
set mark-directories on
set mark-symlinked-directories on
# Match all files
set match-hidden-files on
$endif