3

Linux 端末のようなコマンド ライン機能を実装したいと考えています。これはftpコマンドでも見られました。

  • タブを押すと、コマンドを一覧表示する必要があります。
  • 制御文字を押すと、それに基づいてその文字を取得する必要があり、何らかのアクションを実行します。
  • そして、私が何かコマンドを与えれば、それは実行されるべきです。

このために、非標準モードのTerm::ReadKeyを試しました。しかし、ここでは、制御文字または矢印を押すと3文字になるなど、さらに問題に直面しています。上矢印については、ASCII 27 91 65 を取得しました。

誰でもこの問題を解決できますか?

4

3 に答える 3

2

Term::Readlineが最も役立つと思います。

于 2010-03-17T05:21:06.743 に答える
2

要件を完全に解決する Perl モジュールを 1 つ入手しました。それがTerm::ShellUIです。

ご意見をお寄せいただきありがとうございます。

また、他の解決策があればいつでも歓迎します。

于 2010-03-17T06:18:02.693 に答える
2

残念ながら、一般的なTerm::ReadLineインターフェイスには、カスタマイズ可能な補完機能が含まれていません。そのためには、特定の readline 実装を選択する必要があります。

Term::ReadLine::GnuTerm::ReadLine::Perl、およびTerm::ReadLine::Zoidはすべて、カスタム補完を実行できます。Term::ReadLine::Gnu はおそらく最もよく文書化されています。Term::ReadLine::Perl は事実上文書化されておらず、Term::ReadLine::Zoid の経験はありません。

于 2010-03-17T06:19:09.767 に答える