我正在尝试使用Termcap功能实现 bash 的迷你版本,现在我正在尝试读取用户的输入并在终端 Stdout 中重新输入。 一切正常,但是在尝试调整终端 window 的大小时会出现问题,正如您在下面的 gif 中看到的那样,当我编写单行然后缩小window并再次展开 Z78E6221F6393D ...
我正在尝试使用Termcap功能实现 bash 的迷你版本,现在我正在尝试读取用户的输入并在终端 Stdout 中重新输入。 一切正常,但是在尝试调整终端 window 的大小时会出现问题,正如您在下面的 gif 中看到的那样,当我编写单行然后缩小window并再次展开 Z78E6221F6393D ...
我正在尝试将字符从 cursor 删除到行尾,问题是当我打印一个新行('\n')之后,删除的字符重新出现,我还尝试在新字符之前打印一个 null 字符行,它也一样。 最小代码: Output: Hello World 并且没有最后一次write(1, "\n", 1) Output: Hell ...
我正在尝试为学校项目在 C 中编写一个迷你 shell 用于学校项目,而我想做的是做一种命令历史记录(如在 shell 中),当我按下 UP 键时,它将先前的输入写入输入部分, DOWN 则相反,等等...,您可以在按 Enter 之前对其进行编辑以将其发送到程序,如下所示(抱歉英语不好): [] ...
为什么这个程序的输出没有下划线 但这是? 编辑 问题确实是关于缓冲区管理! 如果我添加fflush ,该字符串将正确加下划线 ...
我正在做一个学校项目(构建一个非常基本的外壳)。 这个想法是能够像在 bash 中那样进行行编辑。 为此,我将终端模式更改为非规范并停止回声。 我做了一个非常简单的代码来暴露我的问题(请注意,我确实检查了函数返回等......我只是为这篇文章尽可能地简短) 所以基本上它是一个循环读取来捕获用 ...
当我 output tput clear | hexdump -c tput clear | hexdump -c如果我在kitty或xterm上,我会得到不同的结果。 如何使用Term::Cap在各个终端上生成这些终端信号? 我尝试的是从带有设置的文档中直接复制粘贴, 然后我认为这应该可行, ...
我创建了一个程序,它接受一个参数列表,并将它们放在一个新 tty 上的网格中,我可以在其中移动并从中选择我想要的。 当我运行程序时没有像这样的反引号...... 打开一个新的 tty 并显示一个网格... 我按ctrl+z并且程序被暂停,没有问题, fg命令将其放回原处。 我的问题是,当 ...
我有一个名为g_data的全局变量,该变量持有一个指向结构的指针,该结构在许多变量中包含两个变量,以容纳终端的高度和宽度。 下面的功能信号处理程序检查终端是否已调整大小。 在那种情况下,函数update_data将这两个变量的值更改为终端的当前高度和宽度。 我的问题是,无论何时 ...
我正在研究termcap库。 我正在尝试在终端中进行行编辑。 我有一个可以移动的光标。 一口气,一切都很好。 但是,如果我的行大于终端宽度,则无法使用le命令将光标从第二行返回到第一行(将光标向左移动)。 我需要设置bw标志来执行此操作。 函数tgetflag()仅返回一个值。 我 ...
我编写了一个代码,该代码将使用 perl 中的 Term::Cap 模块在第 2 行和第 10 列显示一条语句。 我试过下面的代码 我得到的输出没有我指定的任何行和列位置。 还有 Trequire()、Tgetent() 会做什么。 也可以在 (r1,c1) 中显示 Hello,在 (r1,c ...
我正在尝试将嵌入式 Pod 作为 ANSI 文本输出到终端。 在 Perl 5 中,我可以使用Pod::Text::Termcap : 输出: 我试图在 Perl 6 中实现相同的目的: 输出: 正如所见,Perl 6 输出中缺少 ANSI termcap 转义符。 我怎样才能在 Perl 6 ...
我正在尝试从termcap数据库中获取表示箭头键的字符串。 使用以下内容: ku通过键入向上箭头键发送的输入字符串。 问题在于,向上箭头键实际上是在输入程序时作为\\E[A传递的。 这样也传递给了cat 。 我尝试了不同的终端仿真器和外壳,它们都以相同的方式通过了它。 ...
我似乎无法使termcap的“cl”命令工作,但终端转义码确实如此。 例如: 这不会改变终端。 但是当我跑步时: 或者如果我调用echo `tput cl`终端被清除。 为什么会这样? termcap不应该给出相同的转义码吗? 编辑:修正了写字符 ED ...
我自己编译的少数几个软件之一就是屏幕。 我发现它倾向于支持终端的一些现代功能,而不是存储库中的版本。 我已经做了一段时间了,没有太多问题。 然而,在升级到18.04时,(真实)颜色似乎已经破裂。 我运行这段代码来打印彩虹,它仍然在一个裸konsole中工作: 但是,当我启动屏 ...
在terminfo的联机帮助页中,提到了用于指定以ms为单位的延迟的编码中的$<> ,并且在其尖括号中是一个精度最高为小数点后一位的数字。 并且使用以下python脚本,我确认$<仅用于指定延迟,即,没有参数化字符串,其中$<已用于不指定延迟。 所以我的问题 ...
我正在编写一个插件,需要检查突出显示属性(粗体,斜体,下划线等)在终端上是否可实际显示。 我试图用termcap进行检查。 例如下划线, 在xterm上变为TRUE,并且可显示。 然而, 在win32上变为TRUE,但不可显示。 在nvim上变为FALSE,但可显示。 ...
我需要使用C中的termios.h在终端中创建一个interface 。为了简短./exec ,我必须创建一个可执行文件(如./exec ,运行后,它必须停止显示PS1变量。 如果我有一个程序显示以下使用printf文本Hello World ,它将看起来像: 但是,除了打印这些内容, ...
我在C ++中为参数化的字符串(用于指定终端的某些终端功能)实现一个解析器。 然后我在terminfo的手册页上遇到了这种% encoding : 因此,我的问题是,每当我们将任何内容压入堆栈时,就是遇到以下任何% encodings : 并且每当遇到这些错误并计算它们的结果以 ...
我试图制作一个C程序来选择选项。 如果我这样运行,它将起作用: 但是如果我在反引号之间运行它,那真是一个地狱 我需要能够检索选定的选项。 这就是为什么我将所有输出保存到打开的文件中的原因 我认为这与在代码中使用tgoto来移动屏幕上的书写光标有关。 我已经看到 ...
我想知道如何在我的程序中获取光标位置 (x, y),而不在屏幕上写任何东西,也不会一直跟踪它。 我找到了一种使用此函数获取其位置的方法(我在这里不检查读取、写入等的返回来编写有关此主题的较小代码,但我在我的程序中执行此操作): 这个函数给了我准确的光标位置(*rows = y,*col = x ...