问题标签 [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.
scripting - 是否有清理 script(1) 工具输出的工具?
script(1)
是用于记录交互式终端会话的工具;默认情况下它写入文件transcript
。我的问题是我使用ksh93
具有 readline 功能的 ,因此脚本被各种终端转义序列弄乱了,重建实际执行的命令可能非常困难。更不用说流浪^M
者之类的了。
我正在寻找一种工具,它可以读取由 编写的脚本文件script
,删除所有垃圾,并重建 shell 认为它正在执行的内容,所以我有一些东西可以显示$PS1
和实际执行的命令。如果做不到这一点,我正在寻找关于如何编写这样一个工具的建议,最好是使用 terminfo 数据库中的知识,或者如果做不到,只使用 ANSI 转义序列。
一个查看 shell 历史的作弊,只要它真的有效,也是可以接受的。
unix - 如何确定终端是否具有颜色功能?
我想更改一个程序以自动检测终端是否具有颜色功能,因此当我从不支持颜色的终端(例如 (X)Emacs 中的 Mx shell)中运行所述程序时,颜色会自动关闭.
我不想硬编码程序来检测 TERM={emacs,dumb}。
我认为 termcap/terminfo 应该能够帮助解决这个问题,但到目前为止,我只设法拼凑了这个使用 (n) 诅咒的代码片段,当它找不到终端时,它会严重失败:
即我明白了:
这是......次优的。
c - 为什么 setupterm 会终止程序?
这是“Beginning Linux Programming”一书中的示例程序:
运行它,我有这个结果:
根据 setupterm 函数定义,它必须返回 0:“在 terminfo 数据库中没有匹配的条目”。取而代之的是程序终止。为什么?
terminal - 使用 Ncurses 打印双倍大小的字符
许多终端仿真器(xterm、Konsole)支持双倍大小的字符。Ncurses 不支持这一点,据我所知,ncurses 不会打印转义字符(\033 将被取消转义并以明文形式打印)。
是否可以在 ncurses 应用程序中打印双倍大小的字符?
perl - 此 tty 上的选项卡有多少个空格
我有一个 perl 脚本正在写入标准输出,它是一个 tty。有没有办法确定该 tty 上的选项卡有多少空格?
ruby - 从 Ruby 获取终端位置
绝对必须有更好的方法来做到这一点。
基本上,我在子进程中运行这个问题的 bash 脚本,然后从重定向文件中读取输出。
不使用 C 或任何 gem(stdlib 可以)有什么更好的方法来做到这一点?交叉兼容性不是很重要。
search - 从源代码构建 ncurses 时如何为 terminfo 数据库设置自定义搜索路径
从源代码构建 ncurses 时,如何为 terminfo 数据库设置自定义搜索路径?
更具体地说,如何强制在“~/.terminfo”中搜索主目录?
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。
tmux - tmux 手册页搜索突出显示
例如,当我man ls
在tmux
会话中搜索时,搜索字符串不会突出显示 - 页面会向下跳转,以便搜索字符串按预期位于缓冲区的顶行,但它没有突出显示。
不在tmux
会话中时在同一个 shell 中执行相同的操作会导致搜索字符串突出显示。
我不知道从哪里开始寻找解决这个问题。任何提示表示赞赏。
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 脚本或其他...)