2009-06-03 4 views
3

comment in response to a shell questionのユーザーtinkertimは、bashオートコンプリートライブラリを使用するとkshをハックするのは簡単だと述べています。私は、bashオートコンプリートをAT & T ksh93と使うよりも良いものは何もありません。これはどうすればできますか?bashオートコンプリートを使用するためにksh93をどのようにプログラムできますか?

ksh93は1年に何回も新しいリリースがあるので、私はソースコードを変更する必要がないソリューションを探しています。 ksh93は、新しいCモジュールを動的にリンクすることができ、プログラマブルです(キーストロークごとにksh関数を実行します)ので、ソースを変更することは本当に必要ではありません。

注:私はkshで行うのは簡単である程度ファイル名自動補完を、話していません。私は、nmhコマンドの自動補完オプションやMercurialコマンドを自動補完するような、bashが行うその他の面白いオートコンプリートのすべてについて話しています。そのようなもの。

答えて

0

Readlineラッパーrlwrapがあります。たぶんあなたのシステム用のソフトウェアパッケージがあります。

起動するプログラムの標準入力より上にあり、設定可能でビットプログラマブルで、履歴を保持します。

私は通常、Oracle SQL * Plusのようなものに使用します。

あなたが探しているツールである場合とそうでない場合があります。確認する必要があります。

+0

rlwrapは実際には他の問題にはかなり役立ちますが、その自動補完機能は最小限です。 –

+0

スペシャルがあれば、それはKSHの入力機能ととにかく衝突します。 – TheBonsai

0

私はこれを行うために見つけた最も簡単な方法の1つ(emacsにラインエディタを設定することです)は、set -o emacsをダブルタップESC(ESC- ESC)。

これは最も効果的な自動補完ではありませんが、私の.profileのファンキーなハッキングを行わずに使用している可能性があります。

0

set -o emacsに加えて、set -o viもあり、ファイル名補完のためにキーボードコンボESC- \を有効にします。 (ESCはコマンドモードに入り、できるだけ多くのファイル名を完成させるためにオートコンプリートを行います)set -o viはコマンドモードとインサートモードの2つのモードでviスタイルの編集を可能にします。

これは、kshでbashスタイルのオートコンプリートをエミュレートするというオリジナルの質問には答えませんが、少なくとも、あなたがオートコンプリートでkshのビルドに従事する別の方法を認識していなかったかどうかは分かっています。

私はまた、選択肢のリストを取得する= ESC-を含むいくつかの関連kshのオートコンプリート情報、とここに別のスレッドに気づいた:link text

+1

*ファイル名*オートコンプリートはkshでは問題ありません。これは 'cvs'コマンドなどを自動補完する機能など、私が望む他の自動補完機能です。 –

0

バインドにそのタブを打つ、complete組み込みを使用していますbashスクリプトを呼び出すには、Tabキーをksh93では実際にテキストを完成させるためにbashが実行されます。

は、キー '\' その後、ESCを押す試してみてください詳細