1
我見過終端應用程序,例如vim,它們在使用時充滿整個屏幕,然後在退出時完全消失,即它們不會簡單地打印到當前終端的「space 「:使用整個終端窗口的終端應用程序
我想知道如何在C#中,我可以做到這一點。
我見過終端應用程序,例如vim,它們在使用時充滿整個屏幕,然後在退出時完全消失,即它們不會簡單地打印到當前終端的「space 「:使用整個終端窗口的終端應用程序
我想知道如何在C#中,我可以做到這一點。
該程序使用替代屏幕功能的終端(最初xterm,但其他)。
vim正在使用終端描述,其中包括用於開始和結束使用光標尋址的轉義序列。大多數情況下(對於xterm和模擬器)切換到備用屏幕/從備用屏幕切換,保存/恢復正常屏幕中的光標位置。並非所有的終端描述都使用該功能。
該功能的歷史記錄在xterm FAQ Why doesn't the screen clear when running vi?中給出。本來這是(在terminfo的格式)
smcup=\E7\E[?47h, rmcup=\E[2J\E[?47l\E8,
(其中\E
是ASCII轉義字符\033
),以及modern version是
smcup=\E7\E[?1049h, rmcup=\E[?1049l
參考MSDN,這可能會爲\E7\E[?47h
工作:
System.Console.Write("\u001b7\u001b[?47h")
該\E
變成\u001b
。同樣,對於\E[2J\E[?47l\E8
,你可以寫
System.Console.Write("\u001b[2J\u001b[?47l\u001b8")
延伸閱讀:
我怎樣才能使用備用屏幕在C# ? – theonlygusti
通過將轉義序列寫入終端... –
什麼是轉義序列?你沒有提到它。 – theonlygusti