Forum: Ruby Console Application Keyboard event catch

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ead9f9fe6f54ef99b17dbcf8a923d990?d=identicon&s=25 unknown (Guest)
on 2007-07-02 05:18
(Received via mailing list)
Dear All,

While doing the console application with Ruby, met below questions,
please help, thanks in advance,

  1. How to catch the Keyboard event, such as, how about the [TAB]
key pressed, [CTRL] key and so on;
  2. How to backdisplay the string? Such as, when you type [cd]
command at the windows command mode, and press [TAB] it will help to
complete the directory name, such as [abc] directory, once you press
again, it will delete the [abc] directory and display another one, such
as [efg].

I try search from the google, but no result, please help thanks.

Regards,
Marble






IMPORTANT NOTICE
Email from OOCL is confidential and may be legally privileged.  If it is
not intended for you, please delete it immediately unread.  The internet
cannot guarantee that this communication is free of viruses,
interception or interference and anyone who communicates with us by
email is taken to accept the risks in doing so.  Without limitation,
OOCL and its affiliates accept no liability whatsoever and howsoever
arising in connection with the use of this email.  Under no
circumstances shall this email constitute a binding agreement to carry
or for provision of carriage services by OOCL, which is subject to the
availability of carrier's equipment and vessels and the terms and
conditions of OOCL's standard bill of lading which is also available at
http://www.oocl.com.
97550977337c9f0a0e1a9553e55bfaa0?d=identicon&s=25 Jano Svitok (Guest)
on 2007-07-02 23:36
(Received via mailing list)
On 7/2/07, marble.zhong@oocl.com <marble.zhong@oocl.com> wrote:
>         2. How to backdisplay the string? Such as, when you type [cd]
> command at the windows command mode, and press [TAB] it will help to
> complete the directory name, such as [abc] directory, once you press
> again, it will delete the [abc] directory and display another one, such
> as [efg].
>
> I try search from the google, but no result, please help thanks.

1. TAB is character #9, Ctrl+A is (IIRC) 0, Ctrl+B 1, etc. If you want
to catch all the combinations, you need to use special api, i.e. getch
from msvcrt, or curses.

2. BS (backspace, Ctrl+H) moves cursor one char left. CR (carriege
return, 13) moves cursor to the start of the line (you need to
overwrite everything you have written before, and it's possible that a
screen will scroll up, and LF (line feed) will be inserted by ruby)

3. have a look at readline library, it may do what you are trying to
achieve.

J.
This topic is locked and can not be replied to.