问题标签 [termcap]

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 投票
3 回答
956 浏览

macos - 无法通过 Mac 中的 termcap 关闭自动边距

我需要根据我 Mac 中 Screen 手册中的以下语句关闭自动边距

如果您的终端是“真正的”自动边距终端(它不允许在不滚动屏幕的情况下更新屏幕上的最后一个位置),请考虑使用关闭了自动边距的终端 termcap 版本。

如何通过终端的 termcap 关闭自动边距?

0 投票
2 回答
546 浏览

unix - TUI 通过 termcap 使用带有纯 ascii(7 位)字符的俚语

我正在使用 newt/snack(基于俚语的 Python 的 TUI 图形 Widgit 库)来拥有一些交互式脚本。但是对于某些目标终端,这些屏幕的输出不是很好。我可以通过更改$TERM变量来更改它们的外观以删除不可打印的字符,并将它们转换为更合适的东西。例如:

到目前为止,我测试的值$TERM仅取得了适度的成功。

$TERM 是否有一个已知值可以一致地转换图形字符:

变成非图形字符:

0 投票
3 回答
8636 浏览

unix - 如何确定终端是否具有颜色功能?

我想更改一个程序以自动检测终端是否具有颜色功能,因此当我从不支持颜色的终端(例如 (X)Emacs 中的 Mx shell)中运行所述程序时,颜色会自动关闭.

我不想硬编码程序来检测 TERM={emacs,dumb}。

我认为 termcap/terminfo 应该能够帮助解决这个问题,但到目前为止,我只设法拼凑了这个使用 (n) 诅咒的代码片段,当它找不到终端时,它会严重失败:

即我明白了:

这是......次优的。

0 投票
1 回答
108 浏览

linux - 关于使用 Perform 屏幕显示的问题

问题 1 和 2 特定于 INFORMIX-SQL 4.10.DD6 (DOS) 执行屏幕。问题 3 适用于任何环境中的任何版本的 INFORMIX-SQL。

  1. 我希望能够在我的执行屏幕上显示超过 80 列,以便在一页中容纳更多内容。我尝试了 DOS 6.22 命令 'MODE CON: CO132' 并在我的执行屏幕上指定了 'SCREEN SIZE 24 BY 132' 然后在 80 列标记之后添加了一些字段标签以查看它是否有效,但 MODE CO132 命令不起作用屏幕保持在 80 列模式。有没有办法做到这一点,因为 VESA BIOS 在大多数硬件上是标准的,或者其他实用程序可以将 DOS 屏幕模式更改为 132 列?我在 LINUX 中使用 termcap 文件中的 CO#132 完成了此操作。

  2. 我的执行屏幕在同一页面上有两个表格。当我使用 Master/Detail 从一个表切换到另一个表时,具有 REVERSE 属性的字段将反向扩展一个向左的位置,而该字段中的数据保持在同一位置!.. ISQL 2.10 没有发生这种情况,但现在是 4.10 .. 我的屏幕尺寸为 24 X 80,尝试了 24 X 79 但没有解决显示问题。但是,当我在执行中按屏幕命令时,它会恢复正常。我也在使用分隔符“”;[空白分隔符] 在我的 .PER 的说明部分中。知道可能是什么原因造成的吗?

  3. 当用户决定在执行中中止 [Control-C] 添加、更新等命令时,DISPLAYONLY 字段不会恢复到执行命令之前的先前显示值。我的 .per 屏幕、属性和说明部分分别有以下示例:

    /li>

当用户选择执行操作添加或更新时,DISPLAYONLY 字段 dispfld1 会自动显示今天的日期,但是当中止添加或更新操作时,dispfld1 不会恢复为 NULL 值,它会保留今天的日期。

我尝试了各种方法。以下指令语句的语法不正确,但这是我想要完成的!

与 table.columns 关联的字段标记恢复正常,但 DISPLAYONLY 字段保留我在进入添加或更新时选择显示的任何值。

0 投票
1 回答
2788 浏览

shell - 在 Linux shell 脚本中测试颜色支持

这是我第二次想要这样做,我的 google-fu 又一次让我失望了。

在运行 shell 脚本(在我的情况下是 bash 脚本)的过程中,是否有一个程序/脚本可以测试当前 shell 是否支持颜色?

或者有没有办法采用终端类型并轻松确定它是否支持颜色?

无论哪种方式都会有所帮助。

0 投票
4 回答
1073 浏览

unix - 我可以确定终端是否解释 C1 控制代码吗?

ISO/IEC 2022 定义了 C0 和 C1 控制代码。C0 集是ASCII、ISO-8859-1 和 UTF-8(例如0x00、、)之间熟悉的代码。0x1fESCCRLF

一些 VT100 终端仿真器(例如screen(1)PuTTY)也支持 C1 集。这些是和之间的值0x800x9f例如,0x84将光标向下移动一行)。

我正在显示用户提供的输入。我不希望用户输入能够改变终端状态(例如移动光标)。我目前正在过滤掉C0集中的字符代码;但是,如果终端将它们解释为控制代码,我也想有条件地过滤掉 C1 集。

有没有办法从数据库中获取这些信息termcap

0 投票
4 回答
2211 浏览

perl - 终端:我在哪里?

是否有变量或函数可以告诉我光标的实际位置?

0 投票
3 回答
951 浏览

perl - 在 Perl 中获取当前终端颜色对

我正在尝试了解终端窗口中的彩色文本。(如果我在 OS X 上使用 Terminal.app 很重要。)我想获取终端当前的前景色和背景色对。看起来我应该能够使用 Term::Cap 库在 perl 脚本中获取此信息,但解决方案让我望而却步。

在 perl 脚本中,我将如何查询终端当前的前景色和背景色对值?

0 投票
1 回答
921 浏览

bash - 以编程方式拆分像 GNU 屏幕这样的终端

据此(@Programs using ncurses):

http://en.wikipedia.org/wiki/Ncurses

和这个:

http://aperiodic.net/screen/faq#when_i_split_the_display_and_then_detach_screen_forgets_the_split

Screen 使用 termcap(我几乎不知道如何使用)而不是文本库来处理窗口拆分。我正在开发一个小型 C++ 控制台应用程序,我需要在其中做同样的事情。我尝试使用 ncurses,这是显而易见的选择,但它不支持颜色的 ANSI 转义序列(http://ascii-table.com/ansi-escape-sequences.php),而我实际上在做的是 fork ()/exec() 同一个 tty 中的 4 个 bash shell,这在 ncurses 中是小菜一碟,但是没有颜色和许多看起来像垃圾的失败转义序列。像 printf() 和 std::cout 这样的方法可以完美地处理颜色,但在这种情况下是无用的,因为 ncurses 依赖于它自己的函数来保持位置。

在建议将转义序列解析为 ncurses 以使用库的本机属性对输出进行着色之前,请记住这是太多的工作,应该有一种更优雅的方式来处理它(就像 GNU Screen 一样)

那么,关于如何解决它的任何想法?

提前致谢

0 投票
1 回答
1448 浏览

terminal - 插入符号(又名抑扬符)(^) 键的 termcap 代码是什么?

我想将^键重新映射到<Esc>VIM,因为它更容易在德语键盘上使用。据我了解,该^键没有键码,我必须使用 termcap 表示法:

但我找不到circumlflex 的termcap 代码^。有谁知道典型终端的 termcap 代码的完整列表。我希望这个解决方案适用于 Ubuntu 和 Windows 中的 gvim。

编辑: inoremap ^ <Esc>在 Linux 中部分工作。你必须按^^。只有当您使用非死键布局时,它才能完美运行。inoremap <C-^> ^在非死键布局下也可以正常工作,但在默认布局下根本不工作。

解决方案:使用不会使按键静音的键盘布局,^并使用^(又名抑扬符或插入符号)作为标准。~/.vimrc 中的 ASCII 字符。

请参阅superuser.com/questions/280005,了解如何在 Windows 中禁用死键。谢谢 Jens 的链接。

谢谢,尤文