如何在 Linux 上的 C# 控制台应用程序中隐藏光标?

How to hide the cursor in a C# console application on Linux?

我正在使用 Mono 在 Linux 上 运行 编写一个 C# 应用程序,我想隐藏控制台光标。但是由于这个 Console.CursorVisible = false 似乎什么都不做,是否有另一种方法可以做到这一点,例如控制台命令还是本机函数?

这在很大程度上取决于您使用的 terminal/shell 类型,但在 OS-X iTerm 或终端 bash 上,我是这样做的:

public static void Main(string[] args)
{
    Process.Start("tput", "civis -- invisible");
    Console.WriteLine("Hello World!");
    Console.Read(); // no cursor
    Process.Start("tput", "cnorm -- normal");
    Console.Read(); // with cursor
}

这应该可以在 Linux/bash 和其他人上正常工作,因为它正在使用 terminfo 数据库,如果没有,我会检查您的 terminfo 数据库是否缺少元素。