インタラクティブCLIはどのように機能しますか?

インタラクティブCLIはどのように機能しますか?

Vimなどのコマンドラインアプリケーションはどのように機能しますか?具体的には、彼らは端末をどのように制御しますか?そして、後で参照できるようにVimのように端末を制御するアプリケーションを指す特定の用語がありますか?

ベストアンサー1

vimやその他の半グラフィック(角度、完全な十字...などの半グラフィック文字を表示できます)アプリケーションは、特殊なエスケープシーケンスを送信して端末を制御します(カーソル位置、表示可能文字位置、色設定などを管理します) )。制御コードを使用すると、端末はこれを実行する特定のタスクに変換します。

標準出力にエスケープシーケンスをエコーすることはすべてのプログラマにとって悪夢であるため、常に異なる機能と異なるエスケープシーケンスを持つさまざまな端末があるため、移植不可能なコードを意味することは言うまでもありません。

すべてのタスクを抽象化するライブラリを作成しました。呪い。これで名前が付けられました。呪いまた、ウィンドウ管理などのより高いレベルの機能も提供します。

ncursesは次のように異なります。用語情報適切な端末機能記述を取得するために使用されるデータベース。

これはこの関数ライブラリのためです。vim, itraf-ng, alsa amixer, less, gdb,デフォルトのカーネル構成ユーティリティと端末を制御するその他の多くのユーティリティ。


これらのアプリケーションは一般的にコマンドラインユーティリティは通常、デフォルトのカーソル管理と編集機能を使用して、1行の入力を処理します。読書船図書館。
代わりに、ncurses上記のリンクのマニュアルページで読むことができるように、次のプログラムを呼び出すことができます。インタラクティブで画面指向です。 vim一般的に命名画面指向ed比較修正行指向編集する。


コメントで次の提案を参照してください。

起動時に、アプリケーションは実行されたシェルからttyドライバの設定を継承し、これらの設定は元のAgettyで元の設定と非常によく似ている可能性があります。
これには、改行文字がキャプチャされるまで入力バッファリング、瞬時カーソル位置でEnterキーをエコーするなど、画面指向アプリケーションに必要とされないすべての機能が含まれます。

初期化時に、プログラムは現在のttyドライバ設定を保存し、プログラマの希望に応じてそれを適用します。
終了する前に...プログラマーは初期設定を復元することをお勧めします...予測不可能ですが、間違いなく混乱した状況で呼び出しシェルに戻る危険に直面しない限り...

おすすめ記事