TUI文字编辑

时间:2017-02-26 02:46:19

标签: c

处理C代码,该代码读取一行文本并允许使用TERMCAP例程(类似于“readline”库)移动和编辑光标。问题是:当需要从行尾删除一个或多个字符时,(1)将光标移动到EOL并发出\b \b个序列更为有效;或(2),将光标移动到截断点并发出一个“擦除到行尾”命令?不确定后一个命令是多么“昂贵”,特别是在广泛的终端上。有谁知道权衡/指导方针是什么?

1 个答案:

答案 0 :(得分:1)

取决于输出设备(终端)以及要删除的字符数。通常情况下,如果设备首先支持Erase-to-EOL,那就是因为它比执行一次或两次Erase-Single-Character操作更快。

除非您通过非常慢的连接进行操作,否则可能无关紧要。早在80年代,这种事情就引起了人们的关注,因为我们经常使用超过1200bps的连接等等。这也是为什么人们经常避开诅咒(3)并直接进入termcap的原因。如今,通信和输出设备通常比用户反应时间快得多,您可以通过完全重新绘制屏幕来摆脱它。

出于好奇,为什么要使用termcap?几十年前它在大多数UNIX平台上被terminfo取代。更不用说像curses这样的高级库的可用性了。