使用C代码读取一行文本,并允许使用TERMCAP例程(类似于“readline”库)移动和编辑光标。问题是:当一个或多个字符需要从行尾删除时,更有效的方法是(1),将光标移动到下线并发出\b \b序列;或者(2),将光标移动到截断点并发出一个“删除行尾”命令?不知道后者的命令有多“昂贵”,特别是在一个宽频终端上。有人知道什么是折衷/准则吗?

最佳答案

这取决于输出设备(终端),以及要擦除的字符数。通常,如果设备首先支持擦除到下线,那么它就在那里,因为它比执行一个或两个以上的擦除单个字符操作更快。
除非你在一个非常慢的连接上运行,否则这可能无关紧要。早在80年代,这种事情就引起了人们的关注,因为我们经常处理超过1200 bps的连接等;这也是为什么人们经常避开诅咒(3)而直接去termcap的原因。如今,通信设备和输出设备通常都比用户的反应时间快得多,因此完全重画屏幕通常可以省去很多时间。
出于好奇,为什么要使用termcap?几十年前,它被大多数UNIXy平台上的terminfo所取代。更不用说像curses这样的高级库的可用性了。

关于c - TUI文字编辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42464164/

10-13 07:05