使用C代碼讀取一行文本,並允許使用TERMCAP例程(類似於「readline」庫)來移動和編輯光標。問題是:當一行或多行字符需要從行末擦除時,(1)將光標移至EOL併發出\b \b
序列更有效;或(2),將光標移動到截斷點併發出一個「擦除到行尾」命令?不知道後者的命令是多麼「昂貴」,特別是在寬廣的終端上。任何人都知道什麼是權衡/指導方針?TUI文本編輯
Q
TUI文本編輯
1
A
回答
1
它取決於輸出設備(終端)以及有多少字符正在被擦除。通常情況下,如果設備首先支持Erase-to-EOL,那麼它就在那裏,因爲它比執行一個或兩個以上的Erase-Single-Character操作要快。
除非您通過非常慢的連接進行操作,否則可能並不重要。早在上世紀八十年代,這種事情就成了一個問題,因爲我們經常工作在1200bps以上的連接等等。這也是爲什麼人們經常避開詛咒(3)並直接進入術語上限的原因。現在,通信和輸出設備通常比用戶的反應時間快得多,你可能經常無法完全重新繪製屏幕。
出於好奇,爲什麼要使用termcap呢?它在幾十年前的大多數UNIXy平臺上被terminfo所取代。更不用說像curses這樣的更高級庫的可用性了。
相關問題
- 1. 編輯文本
- 2. 文本編輯
- 3. CSS文本編輯
- 4. Matlab - 編輯文本
- 5. 文本編輯器
- 6. SHBrowseForFolder文本編輯
- 7. 編輯文本列
- 8. Android編輯文本
- 9. 編輯文本 - AS3
- 10. 編輯快速編輯文本
- 11. 編輯文本框沒有被編輯
- 12. 編輯文本列表編輯
- 13. 可編輯QComboBox:與項目文本同步編輯文本
- 14. 執行編輯文本創建的編輯文本
- 15. C++編輯文本文件
- 16. 編輯文本文件?
- 17. 編輯文本文件
- 18. 編輯文本文件dojo
- 19. C#編輯文本文件
- 20. 文本文件編輯C
- 21. 從文本視圖編輯文本到android中的編輯文本
- 22. 編輯文本文件編程
- 23. 動態編輯文本和文本框
- 24. XML文本編輯器 - 文本框
- 25. 保存文本編輯文本
- 26. 富文本編輯的文本區
- 27. 以文本方式編輯Excel文本
- 28. 從編輯文本中獲取文本
- 29. 從文本編輯器捕獲文本
- 30. 用文本編輯文本左側
用\ b擦除不同於殺死到行尾。如果同一行中有兩個單詞,並且您想從第一個單詞中刪除一些字符,該怎麼辦?清除行結束可能會更快(在現代硬件中不重要),但會刪除第二個字。 – linuxfan