Win32コンソールにANSI/VT100のエスケープシーケンスを認識させるには?
質問
ncursesライブラリの軽量版を作っています。今のところ、VT100 互換のターミナルではうまく動作していますが、win32 コンソールが
\033
コードをエスケープ シーケンスの始まりとして認識できません。
# include <stdio.h>
# include "term.h"
int main(void) {
puts(BOLD COLOR(FG, RED) "Bold text" NOT_BOLD " is cool!" CLEAR);
return 0;
}
<イグ
ANSI.SYS ドライバをロードし、ANSI/VT100 エスケープシーケンスを認識するために、C コードレベルで何をする必要がありますか。
どのように解決するのですか?
[UPDATE] 最新の Windows 10 については、この回答のコメント欄のすぐ下にある @brainslugs83 による有用な投稿をお読みください。
以前のバージョンでは
Windows 10 Anniversary Update
:
ANSI.SYS は、Windows 95-Vista では MS-DOS サブシステムのコンテキストでのみ実行できるという制約があります。
Microsoft KB101875 では、コマンド ウィンドウで ANSI.SYS を有効にする方法について説明しています。
しかし、それは Windows NT には適用されません。 . その記事によると 私たちは皆、色が好きです。 の記事によると、最近の Windows のバージョンでは、この素晴らしい ANSI サポートがないとのことです。
代わりに、Microsoft は多くの関数を作成しましたが、これは ANSI/VT100 エスケープ シーケンスを操作する必要性からはほど遠いものです。
より詳細な説明については ウィキペディアの記事 :
<ブロッククオートANSI.SYS は NT-derived システムにおいて、NTVDM の下で実行される 16-bit レガシープログラムのためにも機能します。
Win32 コンソールは、ネイティブでは ANSI エスケープ シーケンスをまったくサポートしていません。次のようなソフトウェアがあります。 アンシコン などのソフトウェアは、標準の Win32 コンソールのラッパーとして機能し、ANSI エスケープ シーケンスのサポートを追加することができます。
というわけで、私は アンシコン はJason Hoodによるもので、これがあなたの解決策です。これは C で書かれており、Windows の 32 ビット版と 64 ビット版をサポートしています。 ソースが利用可能です。 .
また、似たような質問・投稿で、最終的にANSICONを使用するように回答されているものもありました。
関連
-
Win10ショートカットキーBOOK(史上最強の完成度)
-
[解決済み] .NETコンソールアプリケーションでアプリケーションのパスを取得するにはどうすればよいですか?
-
[解決済み] バッチファイル実行後にコンソールを自動終了させない方法
-
DockerでWindows 10からVolumeボリュームにフォルダを共有する
-
[解決済み】ANSIカラーエスケープシーケンス一覧
-
[解決済み] Windowsのgit diffで「端末が完全に機能していない」という警告が出るのはなぜですか?
-
[解決済み] Windowsのフォントのスケーリングが100%以上のとき、GUIをうまく動作させるにはどうしたらいいですか?
-
[解決済み] WindowsのCygwinでcrontabを実行するには?
-
[解決済み] Python で文字列から ANSI エスケープシーケンスを削除するにはどうすればよいですか?
-
[解決済み] Postgresqlの設定ファイルはどこですか?Windowsの場合、'postgresql.conf'はどこにあるのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
DockerでWindows 10からVolumeボリュームにフォルダを共有する
-
[解決済み] Windowsのコマンドラインでテキストファイルを結合し、先頭行を削除する。
-
[解決済み] WindowsのコマンドラインからGit Bashを起動するには?
-
[解決済み] Git Bashが私のPATHを認識しない
-
[解決済み] IE10はIE7モードでレンダリングされます。強制的に標準モードにする方法は?
-
[解決済み] Windows で .gitignore ファイルを作成すると、「ファイル名を入力しなければなりません」というエラーが発生します。
-
[解決済み] Windowsで.gitconfigの場所を変更する
-
[解決済み] AVDのデフォルト設定フォルダ(.android)の移動
-
[解決済み] バッチファイル: コンソールウィンドウを開いたままにする方法
-
[解決済み] Windowsのバッチファイルで "are you sure "プロンプトを表示させるには?