问题标签 [terminfo]

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 投票
2 回答
142 浏览

scripting - 是否有清理 script(1) 工具输出的工具?

script(1)是用于记录交互式终端会话的工具;默认情况下它写入文件transcript。我的问题是我使用ksh93具有 readline 功能的 ,因此脚本被各种终端转义序列弄乱了,重建实际执行的命令可能非常困难。更不用说流浪^M者之类的了。

我正在寻找一种工具,它可以读取由 编写的脚本文件script,删除所有垃圾,并重建 shell 认为它正在执行的内容,所以我有一些东西可以显示$PS1和实际执行的命令。如果做不到这一点,我正在寻找关于如何编写这样一个工具的建议,最好是使用 terminfo 数据库中的知识,或者如果做不到,只使用 ANSI 转义序列。

一个查看 shell 历史的作弊,只要它真的有效,也是可以接受的。

0 投票
3 回答
8636 浏览

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

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

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

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

即我明白了:

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

0 投票
1 回答
925 浏览

c - 为什么 setupterm 会终止程序?

这是“Beginning Linux Programming”一书中的示例程序:

运行它,我有这个结果:

根据 setupterm 函数定义,它必须返回 0:“在 terminfo 数据库中没有匹配的条目”。取而代之的是程序终止。为什么?

0 投票
1 回答
2526 浏览

terminal - 使用 Ncurses 打印双倍大小的字符

许多终端仿真器(xterm、Konsole)支持双倍大小的字符。Ncurses 不支持这一点,据我所知,ncurses 不会打印转义字符(\033 将被取消转义并以明文形式打印)。

是否可以在 ncurses 应用程序中打印双倍大小的字符?

0 投票
1 回答
312 浏览

perl - 此 tty 上的选项卡有多少个空格

我有一个 perl 脚本正在写入标准输出,它是一个 tty。有没有办法确定该 tty 上的选项卡有多少空格?

0 投票
3 回答
1282 浏览

ruby - 从 Ruby 获取终端位置

绝对必须有更好的方法来做到这一点。

基本上,我在子进程中运行这个问题的 bash 脚本,然后从重定向文件中读取输出。

不使用 C 或任何 gem(stdlib 可以)有什么更好的方法来做到这一点?交叉兼容性不是很重要。

0 投票
2 回答
3286 浏览

search - 从源代码构建 ncurses 时如何为 terminfo 数据库设置自定义搜索路径

从源代码构建 ncurses 时,如何为 terminfo 数据库设置自定义搜索路径?

更具体地说,如何强制在“~/.terminfo”中搜索主目录?

0 投票
1 回答
2841 浏览

emacs - 如何安装 terminfo 条目(来自 Emacs 的 eterm-color)?

我想从 Emacs 术语模式缓冲区中运行 GNU Screen。当我尝试这样做时,我收到一个错误:

此错误表明我应该安装 eterm-color terminfo 条目。我试图以两种方式都失败了。

第一次尝试是使用 TERMINFO 环境变量。

我的 .bashrc:

然后我做了:

在 term-mode 缓冲区中找不到 eterm-color 条目。它说它从 TERMCAP 而不是从实际文件中获取 eterm-color 。

第二次尝试是使用符号链接。

这以与第一次尝试相同的方式失败。

为什么两种尝试都没有成功?如何安装 eterm-color terminfo 条目?

我正在运行 OS X 10.6.8 和 Emacs 23.3.1。

0 投票
3 回答
6563 浏览

tmux - tmux 手册页搜索突出显示

例如,当我man lstmux会话中搜索时,搜索字符串不会突出显示 - 页面会向下跳转,以便搜索字符串按预期位于缓冲区的顶行,但它没有突出显示。

不在tmux会话中时在同一个 shell 中执行相同的操作会导致搜索字符串突出显示。

我不知道从哪里开始寻找解决这个问题。任何提示表示赞赏。

0 投票
3 回答
11118 浏览

linux - 在 bash 脚本中使用“备用屏幕”

备用屏幕被许多“用户交互”的终端应用程序使用,如 vim、htop、screen、alsamixer、less,......它就像终端内容的不同缓冲区,在应用程序退出时消失,所以整个终端得到恢复,看起来应用程序没有输出任何东西。

我想在我自己的 shell (bash) 脚本中实现完全相同的东西,只是它不必那么便携。我会坚持只使用 linux 和基于 xterm 的终端仿真器;tput但如果可能的话,解决方案应该使用类似的东西。但是,我不想使用一些外部脚本语言(甚至是 C 之类的语言)。

虽然我不想使用 C(因为它应该是一个依赖尽可能少的 bash 脚本),但我查看了 less 的源代码。它似乎使用 terminfo 作为数据库,并在其初始化中查找“ti”终端功能。删除该行时,它不使用备用屏幕,因此我假设我找到了负责的代码行。

但是,我在man terminfo. 但也许我在寻找解决方案的错误道路上。也许 terminfo / tput 不是我的朋友。

那么(如何)我可以在 bash 脚本中使用备用屏幕吗?有人知道我可以在其中找到提示的源代码的简单应用程序吗?(C 应用程序或 bash 脚本或其他...)