問題タブ [vt100]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - telnet python 出力を読み取り、ansi エスケープ コードを無視する
私は個人的な解決策のためにpythonでパテのようなものをやろうとしていますが、結果を正しく読むことができません。スイッチからすべての ansi コードを受け取ります
私は正規表現を試してみましたが、実際には文字列が [20;1 または [25;HH] になる可能性があるため、実際には非常に簡単ではありません。やり方がわからない)。
( https://technet.microsoft.com/en-us/library/95e1a3ae-f639-44f1-ba4a-81fd11c95dfe#bkmk_1 ):
しかし、何も機能しません。私はpython 3.4、python用のtelnetlib、Windows 7(およびpycharm)を使用しています
私は最大の正規表現について考えていますが、おそらく Windows から設定する簡単な方法はありますか?
putty - PuTTY と VT100 は行と列をどこから開始しますか?
PuTTY端末が行と列にどのように番号を付けるかを理解しようとしています。
0,0 または 1,1 から始まりますか?
VT100 を使用してカーソルを設定していますが、正しいカウントを送信することが重要です。
次のようにカーソル位置を強制したいのですがESC[1,0f
、カーソルを 2 行目 (ゼロから開始) と 1 列目に設定することを期待しています。
terminal - What is the purpose of DECREQTPARM in VT100?
I'm implementing a terminal emulator for the ESP8266 ("ESPTerm"), and going through the xterm manpage for reference, as well as the old VTxxx reference manuals.
I've implemented DECREQTPARM
. But now am asking myself a question: What's this good for?
Clearly, once you are able to send the query and get a response, you already know the right baud rate, parity and byte length. Was this ever used for anything, and is it of any use today?
The only piece of the information worth querying for is the {flags}
value, but that's only used for some expansion board.
Here is what I found, for reference:
windows - Windows コンソール "ESC[2J" は実際には画面を "クリア" しません
この種の質問が頻繁に寄せられることは承知していますが、これは少し異なり、尋ねる必要があると思います。
新しい Windows コンソールは、ANSI (VT100) 制御コードをサポートしています: ANSI/VT100 制御コード & Windows ドキュメント: 制御コード.
ただし、ESC[2J
実際には画面を「クリア」するのではなく、下にスクロールして印刷されたコンテンツを「非表示」にするだけです。ESC[H
+のみESC[J
が、現在画面に表示されている内容を実際に「クリア」します。これはバグですか、それともこれを行うように設計されていますか? 何かの書類に書いてありますか?
これを実行し.bat
て、私が何を意味するかを確認してください。
または、これを実行します.py
(Python 2):
この単純なスクリプトを実行するとわかるように、ESC[2J
「画面をクリアにする」ために「スクロールダウン」するだけで、コンテンツはまだそこにあります。
これは説明するのが少し難しいです、私が何を意味するのか理解できない場合はコメントしてください、ありがとう!
もう 1 つの小さな質問: command がor +cls
よりも遅いのはなぜですか?ESC[2J
ESC[H
ESC[J
terminal - ESC[ (0x1b/0x5b) シーケンス内の空白文字はシーケンスを無効にしますか?
ESC シーケンス内のスペースに対して何をすべきかについての情報が見つかりません。例: 位置カーソル
ESC[10;20H
は有効な ESC シーケンスですが、次のようなスペースを含むものです
ESC[ 10; 20H
も有効?ポイントは、ESC 文字はコード 0x1b の制御文字ですが、それに続くテキストは人間と機械が読み取り可能なテキストであり、一般にスペースは ESC シーケンスの意味を損なうべきではないため、ESC シーケンス内で見つかったすべてのスペースを削除するだけです。 .
ESC シーケンスとは何か、およびそれらが構成されている可能性があることについて話しているインターネット上の記事はたくさんありますが (ただし、優れた、本当に有益なものはほとんどありません)、この問題を明確にするものはありません。
私はこれを見つけました、そしてそれは言います
ASCII 制御関数は構造化された構文に従っていないため、混乱を避けるために、関数シーケンスとパラメーターを記述するために使用される表記法が重要です。エスケープ シーケンスは、読みやすくするために各文字の間にスペースを入れて表示されます。これらのスペースは、エスケープ シーケンスの一部ではありません。
スペース char は読みやすさのために文字を区切ると言っていますが、スペースを保持すると ESC シーケンスが無効になるかどうかはわかりません。
それに関連するRFCはありますか?このケースを明確に定義することを願っています。
更新:スペース char が ESC シーケンス演算子の 1 つであることを指摘してくれた Thomas に感謝します。したがって、 [ は ESC 文字の後に続く必要があり、それらの間にスペースを入れることはできません。
しかし、次の議論についてはどうですか?上記の例のように、行と列の座標のスペースは ESC[ SP
10; SP
20H はシーケンスを無効にし、代わりにスペース文字を表示する処理を停止する必要がありますか?
Update1: Windows telnet アプリケーションを使用して小さなテストを行いました。リモート サーバーにログインし、そのサーバーが ESC シーケンスで応答します。結果は次のとおりです。
ESC[2;5H
行 2 列 5 を適切に配置する
ESC[ 2; 5H
現在のカーソル位置に「2; 5H」を表示
ESC[2 ; 5H
現在のカーソル位置に「; 5H」を表示
したがって、経験的な調査結果に基づいて、スペースは許可されていないと思われ、スペース文字はシーケンスを無効化/キャンセルします。