问题标签 [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,所以当它粘在像 Password ([25;HPassword) 这样的真实字符串上时,它不能用正则表达式转义(或我不知道该怎么做)。
我试图从 Windows 修改我的终端配置,通过(https://technet.microsoft.com/en-us/library/95e1a3ae-f639-44f1-ba4a-81fd11c95dfe#bkmk_1)更改TERM:
但没有任何效果。我使用 python 3.4、python 的 telnetlib、windows 7(和 pycharm)
我正在考虑一个最大的正则表达式,但也许有一种简单的方法可以从 windows 配置它?
symfony - Symfony 进程吃掉终端控制代码
所以我正在Process
为一些命令运行 Symfony,我注意到当我将这些命令写入 Symfony 时OutputInterface
,它没有显示颜色或进度条。我认为命令(npm、artisan、ls 等)正在使用终端控制代码,其中一个类正在使用非标准 ASCII 字符。
编辑:我已经做了一些挖掘,我相信 SymfonyStreamOutput
默认使用它的类。它似乎能够以彩色输出,我试过告诉它OUTPUT_RAW
. 那里没有豆子。也许问题出在其他地方......
有没有一种内置的方法来告诉这些类不要这样做?我怎样才能得到我漂亮的输出?
putty - PuTTY 和 VT100 从哪里开始行和列?
我试图弄清楚 PuTTY 终端如何对其行和列进行编号。
它是从 0,0 还是 1,1 开始的?
我正在使用 VT100 设置光标,发送正确的计数很重要。
我想像这样强制光标位置:ESC[1,0f
并且我希望它将光标设置在第二行(从零开始)和第一列。
java - VT100 和 Processing,获取光标位置
我正在尝试在处理草图中实现 telnet 接口,以在控制台上传递命令和接收输出。那些日子我正在学习关于 VT100 的命令集,所以我终于能够理解如何通过移动光标来重新打印已经打印的字符串。
我看到程序也可以从控制台获取输入,就像使用Get cursor position命令一样。
问题是只在客户端界面上打印该位置,而我想将它放回主机上。有人知道这是否以及如何可能?
谢谢
这里有一些示例代码:
screen - VT100 保存/恢复背景内容
我正在从嵌入式系统(PIC32 micro)绘制一个基于文本的窗口。我正在使用 VT100 命令和一个串行端口终端软件 (teraterm) 来执行此操作。
我想在绘制窗口之前保存背景,然后在使用后恢复背景。
1-保存背景区域。2- 绘制一个基于文本的窗口。3-使用windows后,恢复背景内容。
谷歌搜索我发现命令 DECCRA 用于复制矩形区域,但 Teraterm/Putty/Others 不太支持它。
有没有其他方法可以做到这一点?
谢谢
ruby - Windows 10 上 Ruby VT100 转义序列的不可预测行为
ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32]
在 Windows 10 上使用,版本10.0.14393
.
先说几点:
- Windows
echo
命令的行为绕过了 VT100 的控制台模式标志。根据 MSDN,这是正常的,其中标志仅影响WriteConsole()
和WriteFile()
。 WriteConsole()
当我使用 更改标志时,Win32 功能正常工作SetConsoleMode()
。它在设置标志时解释 VT100 转义序列。
那么Ruby到底怎么了?它以绿色显示红色并以某种方式忽略了我的控制台标志。另外为什么它显示更深的绿色?我的理论是,这是 Ruby 的一个问题,以及它如何处理将输出写入控制台。
完整脚本:
不要在 Rubymine 中调试此脚本,除非您已将其输出到 Windows 控制台,例如 PowerShell 或命令提示符,GetConsoleMode()
否则会失败。
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
只需“向下滚动”以“使屏幕清晰”,内容仍然存在。
这有点难以解释,如果你不明白我的意思,请评论,谢谢!
另一个小问题:为什么cls
command 比ESC[2J
orESC[H
慢ESC[J
?
terminal - ESC[ (0x1b/0x5b) 序列中的空格字符使序列无效?
我找不到有关应该对 ESC 序列中的空格做什么的信息。示例:定位光标
ESC[10;20H
是一个有效的 ESC 序列,但是是包含空格的序列
ESC[ 10; 20H
也有效?关键是,虽然 ESC 字符是代码 0x1b 的控制字符,但它后面的文本是人类和机器可读的文本,并且通常空格不应损害 ESC 序列的含义,因此我将删除在 ESC 序列中找到的所有空格.
互联网上的很多文章都在谈论 ESC 序列是什么以及它们可能由什么组成(但是只有少数好的和真正信息丰富的),但没有一篇能澄清这个问题。
我找到了这个,上面写着
由于 ASCII 控制函数不遵循结构化语法,因此用于描述函数序列和参数的符号对于避免混淆很重要。转义序列显示为每个字符之间有一个空格,以便于阅读。这些空间不是 Escape 序列的一部分。
虽然它说空格字符分隔字符以提高可读性,但他们没有说保留空格是否会使 ESC 序列无效。
是否有任何相关的 RFC?我希望它明确地定义了这种情况。
更新:感谢 Thomas 指出 space char 是 ESC 序列运算符之一。所以现在很清楚 [ 应该跟随 ESC 字符,并且它们之间不允许有空格。
但是,以下论点是什么?如上例,行列中的空格坐标 ESC[ SP
10; SP
20H 使序列无效,我必须停止处理它开始显示空格字符吗?
Update1:我使用 Windows telnet 应用程序进行了小测试。登录到远程服务器,该服务器以 ESC 序列响应。结果是:
ESC[2;5H
正确定位第 2 行第 5 列
ESC[ 2; 5H
在当前光标位置显示“2; 5H”
ESC[2 ; 5H
在当前光标位置显示“; 5H”
因此,根据经验发现,我怀疑不允许使用空格,并且空格字符会使序列无效/取消。