8

私はプログラミングに関してかなりの初心者ですが、vim、emacs、nano などのシェル テキスト エディターがコマンド ライン ウィンドウをどのように制御できるのか疑問に思っていました。私は主に Windows プログラマーなので、*nix では異なるかもしれません。私の知る限り、テキストをコンソールに出力して入力を求めることしかできません。テキスト エディタは、コマンド ライン環境でナビゲート可能で編集可能なウィンドウをどのように作成しますか?

4

8 に答える 8

10

次に、エスケープ文字シーケンスを使用する次のようなライブラリを使用することによって

名前
       ncurses - CRT 画面処理および最適化パッケージ

あらすじ
       #含む

説明
       ncurses ライブラリ ルーチンにより、ユーザーは端末に依存しない
合理的な最適化でキャラクター画面を更新する方法。これ
実装は「新しいcurses」(ncurses)であり、承認された代替品です
廃止された 4.4BSD のクラシックな curses 用。

[...をちょきちょきと切る....]

       ncurses パッケージがサポートするもの: 画面全体、ウィンドウ、およびパッド
操作; ウィンドウとパッドへの出力。端末入力の読み取り; コントロール
端末を介して入力および出力オプションを呪います。環境クエリ
ルーチン; 色操作; ソフト ラベル キーの使用。terminfo 機能;
低レベルの端末操作ルーチンへのアクセス。

于 2008-10-07T16:33:01.987 に答える
6

簡単な答え: ライブラリがあります (curses、slang など)。

より長い答え: カーソルでジャンプしたり、色を変更したりすることは、特殊文字シーケンス (ESC 文字で始まるため、エスケープ シーケンスと呼ばれます) を出力することによって行われます。

于 2008-10-07T16:29:29.170 に答える
4

ncursesについて学ぶことは、良い出発点かもしれません。

于 2008-10-07T16:28:16.053 に答える
4

「VT100」端末に基づく vt100 と呼ばれる古いプロトコルがあります。エスケープで始まるコードを使用して、カーソルの位置、色、画面のクリアなどを制御していました。

また、色付きのプロンプトを取得する方法でもあります。

Google VT100 または「ターミナル エスケープ コード」

編集:私はあなたのためにそれをグーグルで検索しました:http://www.termsys.demon.co.uk/vtansi.htm

于 2008-10-07T16:28:51.263 に答える
3

これは、Windows コマンド ライン コンソールで「edit」と入力してもわかります。この「機能」は UNIX ライクなシステムに固有のものではありませんが、Windows コンソールをそのように操作するための概念は UNIX とはまったく異なります。

于 2008-10-07T16:33:35.323 に答える
2

Unix システムでは、コンソール ウィンドウは古代のシリアル ターミナル (通常はVT100 ) をエミュレートします。特殊な制御文字とエスケープ シーケンスを印刷して、カーソルを移動したり、色を変更したり、その他の特殊効果を実行したりできます。詳細を処理するのに役立つライブラリがあります。ncursesが最も人気があります。

Windows では、[Win32 コンソール API]( http://msdn.microsoft.com/en-us/library/ms682073(VS.85%29.aspx)が同様の機能を提供しますが、方法はかなり異なります。

于 2008-10-07T16:48:14.030 に答える
2

コマンド ラインで「c:\winnt\system32\edit」または「c:\windows\system32\edit」と入力すると、コマンド ライン テキスト エディターが表示されます。

コマンド画面を制御するために使用されている ESC 文字については、ほとんどの人が正しいですが、一部の古いプログラムでは、Windows コマンド ライン画面で使用されるメモリ スペースに文字を直接書き込むこともあります。

コマンド ライン ウィンドウを制御するには、独自のウィンドウ フォーム、エントリ ボックス、メニューなどを作成する必要がありました。また、イベントを処理するために、それらすべてを大きなループにまとめる必要がありました。

于 2008-10-07T16:54:41.303 に答える
0

より Windows コマンド ライン固有のアプリは、通常、同じことを行う DOS または BIOS 機能を呼び出します。ANSI コマンド コードのサポートが利用できる場合と利用できない場合があります (正確な MS OS のバージョンと、それをロードするように構成されているかどうかによって異なります)。

于 2008-10-07T16:38:24.877 に答える