问题标签 [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.
ncurses - 如何在终端/terminfo 条目中实现适当的鼠标支持?
我已经实现了一个终端仿真器和一个相应的 terminfo 条目,它允许我运行ncurses程序,如emacs、mc(午夜指挥官)或tig(git 浏览器)。我想为终端添加鼠标支持,最值得注意的是通过单击窗口将光标定位在emacs中。经过大量谷歌搜索和对 stackoverflow 的一些帮助后,我了解了所需的 terminfo 字段(最值得注意的是kmous
)和控制(例如\E[?1000h
)和“键”(\E[M...
)序列,并在我的终端中实现了鼠标按钮事件。我写了一个小的ncurses程序,它是这样的:
这个程序在xterm和我的终端上运行良好,所以我的终端和它的 terminfo 条目都不会完全错误。
但是,mc似乎无法识别我的终端中的鼠标支持,甚至没有发出任何\E[?1000h
序列来激活它,因此完全被我的终端发送的鼠标按钮事件(即使没有\E[?1000h
激活)弄糊涂了。
我错过了什么?
terminal - ncurses 是否支持斜体?
某些终端,例如 urxvt,支持通过 thesitm
和ritm
terminfo 条目以斜体显示文本:
我想在我拥有的应用程序中使用它,该应用程序想要将真正的斜体呈现到控制台中。不幸的是,该应用程序是基于 ncurses 的,并且 ncurses 似乎没有斜体的属性 --- 它有一大堆,包括不可见的文本(我确信这对某些东西很有用),但没有斜体。
有谁知道欺骗 ncurses 显示斜体文本的方法,还是我将不得不放弃 ncurses 并重写程序以使用原始终端序列?
terminal - Terminfo smkx 和应用程序光标键与应用程序键盘
XTerm 控制序列指定以下键序列:
并且Terminfo Source Format具有以下条目:
但是 xterm 的 terminfo 实际上说的是smkx=\E[?1h\E=
,这对我来说似乎很混乱(smkx 应该影响键盘,而不是光标键,对吧?)。我在这里想念什么?
vim - tmux、Solarized 和 terminfo
这是一个非常具体的问题,但根据我在网上看到的情况,这是一个非常普遍的问题。我使用的是基于 Red Hat 的相当旧版本的 Scientific Linux 5。我将 vim 与 Solarized vim 配色方案一起使用,并且我的TERM
环境变量通常设置为xterm-256color
. 在我开始使用 tmux 之前,这一直很好。在 vim 中的非空行上,配色方案仅扩展到文档字符的末尾,剩余的空白是纯背景。
在线指南中对此的库存修复是设置TERM='screen-256color'
. 但是,在这样做时,我会收到不祥的警告:WARNING: terminal is not fully functional - (press RETURN)
,当尝试做一些无害的事情时,比如阅读手册页。但是,一切似乎都运行良好,并且修复了 Solarized 错误。
我找到了一个功能修复 -TERM='xterm-256color'
默认使用并将这一行添加到我的 .bashrc 中:
alias v='function _vim(){ TERM='screen-256color'; vim $1; TERM='xterm-256color'; };_vim'
但这似乎是一个黑客。有趣的是,我也设置alias tmux='tmux -2'
了,这是与配色方案相关问题的常见建议。
我也知道 terminfoscreen-256color
在我的机器上可用。
所以,真的,主要令人困惑的是,当使用 时TERM='screen-256color'
,当似乎没有任何问题时,我会收到有关完整功能的警告。
我没有 root 访问权限,因此理想情况下,任何修复建议都不需要。
编辑:我应该提到这TERM='screen-256color-bce'
给出了与TERM='screen-256color'
.
linux - terminfo 似乎在 csh 中不起作用
我想使用 screen-256color 术语并且我的系统没有,所以我在我的主目录中编译它。以下是我的问题
系统好像检测不到screen-256color文件?
linux - 如何在gnu屏幕中绑定多个键,特别是使用箭头键
首先,我使用的是 Opensuse 13.2 64 位和 Arch_Linux 64 位 无法使绑定对它们中的任何一个起作用(嗯,我想要的绑定),但我主要关注 Arch_Linux。另外,使用 openbox wm、xfce4-terminal。(在使用 konsole 和 gnome 3 的 opensuse 中)并且我的 $TERM 在我的 ~/.bashrc 中设置为 xterm-256color,并且在 opensuse 中使用 screen 时切换为 screen-256color,但奇怪的是在 Arch 中没有更改。
我想绑定Ca down:向下聚焦,Ca up:向上聚焦,Ca left:向左聚焦等等。让我们暂时专注于向下聚焦。我已经尝试了 ~/.screenrc 文件中的所有内容
没有什么能抓住向下箭头键。我可以使用以下
但是,我还想使用箭头绑定多个键,AFAIK -k 选项只允许绑定 1 个键(或 shift + 左/右)。实际上我很幸运我什至可以使用 -k 选项,因为它没有记录。
现在我使用 infocmp 检查了我的 kd (termcap) 和 kcud1 (terminfo)
顺便说一句,这些符号可以在这里查找 termcap和在这里查找 terminfo 及其 termcap 等价物 (实际上我猜你可以使用:man terminfo)
当我使用 Ctrl-v 并按下箭头时,我得到
任何人都知道该怎么做。我想知道为什么我不能在没有 -k termcap_name 的情况下使用 bind 和/或如何使用键(例如 ctrl/alt)和 termcap 名称的组合。感谢所有和任何信息。
我试过设置 termcapinfo 也没有运气。不要以为我用对了。
terminfo - 是否可以使用terminfo同时更改前景色和背景色?
我正在编写一个需要输出样式文本的控制台程序。现在我使用固定的 ANSI 转义码作为前景色和背景色、粗体和下划线。例如,我可以编写\033[35m
将前景色更改为紫色。
自己编写代码的好处是我可以将它们链接起来。我可以使用一个命令更改背景颜色和前景色,从而节省宝贵的字节:
\033[48;5;200;38;5;100m
我想改用 terminfo 库来使我的程序在其他类型的终端上工作。但是,我找不到一次更新多种颜色的方法 - 我想设置粗体和下划线以及\033
只有一种且只有一种的颜色m
。
标准中列出了以下命令,但不仅这些命令似乎都没有做我想要的,我实际上无法找到第一组和第二组视频属性实际上是什么:
- set_a_attributes:定义第二组视频属性#1-#6
- set_a_background:使用 ANSI 转义将背景颜色设置为 #1
- set_a_foreground:使用 ANSI 转义将前景色设置为 #1
- set_attributes:定义第一组视频属性#1-#9
terminfo
有没有办法只使用命令来获得我想要的东西?提前致谢。
c - 在 C 程序中使用 terminfo 捕获字符串键
没有人知道在 C 程序中获取 terminfo 键字符串的好方法吗?就像 ncurses 的 infocmp。我找不到任何东西:(
如果有人知道并想告诉我,我将非常感激。
emacs - Emacs 在每个文件的顶部添加一些东西
当我使用 emacs 打开文件时,它会添加12;rgb:1c1c/1c1c/1c1c
到顶部。我怎样才能防止这种情况?
我已经在干净重新安装的 debian 系统上安装了 emacs。
Emacs:GNU Emacs 24.4.1
终端模拟器:MobaXterm Personal Edition v7.7
系统(本地):Windows 7 Ultimate
系统(远程):Debian 8.0 "jessie" stable