我真的不知道如何解释这个,所以标题可能具有误导性。
我正在用 C 编写一个小型文本编辑器,并将整个文件的内容保存到一个字符数组中。现在我想向用户显示整个字符串,这样用户就可以通过定位光标/搜索然后键入或删除字符来在命令窗口中编辑字符串。按回车键或其他键会将文本保存到新字符串并将其写入文件。
类似于在 nano 或 vi 等 linux 文本编辑器中打开文件时发生的情况...您会得到一个光标,您可以在文件周围移动并进行更改。
如何在 C 中完成?我不需要它像在 linux 编辑器中那样,只需将字符串放入输入区域(就像用户键入文本一样)就足够了。
最佳答案
您必须使用 Terminal capabilities (a.k.a Termcaps) .它们是您的终端可以解释的特殊字符(例如来回移动光标,或清除屏幕)。以下是维基百科对 Termcap 数据库的描述:
A termcap database can describe the capabilities of hundreds of different display terminals. This allows programs to have character-based display output, independent of the type of terminal. On-screen text editors such as vi and emacs are examples of programs that may use termcap.
通过使用终端功能,您将能够控制光标在编辑器中的行为方式,以及输入字符的显示方式。一个很好的例子就是使用颜色来突出显示语法。
我建议您使用 GNU Termcap library构建跨终端应用程序。一旦掌握了主要原理,它的用法就相对简单了,我以前用它来实际构建一个 shell(例如 bash
或 sh
)。
接下来,您可能还想查看 differences在规范 和非规范 终端模式之间。鉴于您希望在编辑器中实现何种功能,您可能希望覆盖您的终端解释某些输入的方式。
另见:
关于c - 在控制台的输入空间添加一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288020/