问题标签 [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.

0 投票
1 回答
3152 浏览

macos - 在 VT100/xterm 终端(Mac OS X 的终端)中向 Emacs 发送“C-(”?

是否可以通过 VT100/xterm 终端(Mac OS X 终端)以任何方式将密钥“C-(”发送到 Emacs?是否可以发送转义序列以实现等效?

我怀疑根本问题是不存在将控制与字符“(”(以及使用 shift 产生的其他此类字符)相结合的概念。

注意:使用 Cocoa Emacs 不是一个选项。需要“C-(”的原因是 paredit.el 在其他组合键中使用它,最好不要重新映射它(因为将它放在“C-(”) 上很有意义)。

0 投票
1 回答
1040 浏览

console - VT 终端 - 禁用本地编辑和回显

我正在编写一个应该在 VT 兼容的数据收集器中运行的控制台应用程序。在尝试了一些模拟器后,我发现它们有不同的标准行为。

我担心的是大多数模拟器都有本地数据缓冲区,并在我按下返回时将其发送到服务器。它允许我编辑输入文本。

此功能对我不利,因为用户可能会弄​​乱屏幕布局。

哪些转义码可以禁用字符的本地回显(让服务器将它们发送回来),并设置终端立即将数据发送到服务器而无需等待 RETURN 键?

谢谢

0 投票
0 回答
323 浏览

windows - 如何在 Perl 中从 Windows 将 vt100 格式的文本输出到 unix 套接字?

如果直接在 windows 提示中显示,文本会错位。

有没有转换vt100格式的模块,可以在windows中正常显示?

更新

环境:

0 投票
1 回答
5775 浏览

python - 使用 python / 浏览器进行 vt100 终端仿真

我正在尝试为 Web 浏览器构建一个 SSH 客户端(类似于ajaxterm)。我已经构建了一个使用Paramiko的python 后端SSHClient.invoke_shell(term='vt100')和一个与前端(HTML + AJAX)通信的 Web 服务器。当我通过 SSH 通道发送命令时,系统工作并显示输出,但输出包括 VT100 转义序列。

如果我理解正确,我从 SSH 通道得到的任何东西都应该被解释为 24x80 终端窗口的命令?这意味着转义序列可能会改变颜色、清除屏幕、删除线条、改变线条的行为方式......(我在这里找到了一个很好的列表)这意味着我不能只清除它们?

我检查了 Ajaxterm 的源代码,但不知道如何使用 Terminal 类(所以我可以将它用于我的目的)。

问题:解释输出流并在浏览器中正确显示终端屏幕的最简单方法是什么?换句话说,是否有一个库可以解析输出并为我保留屏幕内容?

如果我误解了终端的内部工作原理,请告诉我。过去我对他们没有太多经验。:)

0 投票
2 回答
1380 浏览

c - VT100 转义序列删除已打印的换行符?

是否有 VT100 转义序列的组合允许我的 C 程序打印如下内容:

等待......

到控制台,以使点一个接一个出现的方式?本质上,我想要一个可以让我插入额外的“。”的命令。在已经发送的换行符前面。

我正在寻找一种适用于 linux 的快速单线器;它不必是便携式的。ncurses 对此太过分了。

0 投票
3 回答
9845 浏览

linux - TERM = linux中ctrl +箭头(左,右,...)的终端转义序列是什么

我正在浏览器中构建一个终端窗口(例如 ajaxterm),并且不知道要发送哪个转义序列到 ssh 隧道(通过打开paramiko.SSHClient().invoke_shell(term='linux'))。

我找到了一个键盘记录器,并在终端中使用 $TERM == 'linux' 进行了尝试,但它返回ctrl+leftleft(27,91,68) 的相同序列。

如果我在另一个终端中尝试键盘记录器(使用 $TERM == 'xterm'),我会得到代码(27、91、49、59、53、68)。但是这些代码不会从 SSH 通道生成预期的输出(这会将光标在普通的 linux shell 上向左移动一个单词)。即使我用 term='xterm' 开始 paramiko 也是如此。

知道我应该使用什么顺序吗?或者为什么上述顺序不起作用?

更新:我很乐意使用另一种终端类型(不是“linux”),但不幸的是pyte仅适用于 VTxxx 终端(我相信“linux”是类似 vt220 的终端 - 无论如何,它可以工作),所以 xterm 不起作用适当地。

0 投票
3 回答
5094 浏览

python - Python 正则表达式匹配 VT100 转义序列

我正在编写一个记录终端交互的 Python 程序(类似于脚本程序),并且我想在写入磁盘之前过滤掉 VT100 转义序列。我想使用这样的功能:

应该进去什么escape_regex

0 投票
3 回答
466 浏览

python - 在 XML 文件中存储 VT100 转义码

我正在编写一个记录终端交互的 Python 程序(类似于脚本程序),我想以 XML 格式存储日志。

问题是终端交互包含VT100转义码。如果我将数据以 UTF-8 编码格式写入文件,Python 不会抱怨,例如:

这个脚本“工作”的意义在于它将文件写入磁盘,但生成的文件不是正确的 utf-8,这会导致像 etree 这样的 XML 解析器在转义码上出错。

解决这个问题的一种方法是首先过滤掉转义码。但是,是否可以在维护转义码的情况下执行类似的操作,并且可以通过 etree 等 XML 工具解析生成的文件?

0 投票
1 回答
394 浏览

unix - 如何检查是否为 vt100 中的光标序列设置了 DECCKM(光标键模式)?(或任何其他终端)

我想知道是否有办法知道是否设置了DECCKM函数(指定是否使用 ANSI 光标序列)。

我正在通过 ptrace 连接到一个进程,所以在建立连接之前我无法知道序列^[[?1h^[[?1l是否已发送到终端。

是否有一些字符串序列在发送到终端时允许我查询光标键模式的状态?或者是否有一些 C 函数/系统调用可以做到这一点?当我正在调试进程时,我可以代表被调试进程伪造终端输入和调用系统函数,所以我只是想知道如何执行检查,就好像你正在编写程序并可以访问源代码一样代码。

0 投票
1 回答
1559 浏览

expect - 转义序列]0;

我目前正在尝试编写一个使用期望登录到 SSH 的脚本。[user@host]~/directory$当我使用 xterm 彩色终端时,每个提示都会登录到服务器。但是,如果我使用 expect 直接从 SSH 读取输出,我会看到以下内容<ESC>]0;user@host:~/directory[user@host]~/directory$。使用export PS1="#-->"将结果更改为<ESC>]0;user@host:~/directory#-->.

我的问题是:序列<ESC>]0;有什么作用?它属于哪一类终端?VT52 和 VT100 都找不到。