【问题标题】:.NET Console Application Tab Completion.NET 控制台应用程序选项卡完成
【发布时间】:2010-09-07 23:06:12
【问题描述】:

关于如何为 .NET (C#) 控制台应用程序实现选项卡完成的任何想法? 我的意思是在一个运行然后循环用户输入的应用程序中(比如如果你运行不带任何参数的 ftp.exe),就像这样:

        string line = string.Empty;
        while (line != "exit")
        {
            //do something here
            Console.ReadLine();
        }

我知道我可能实际上无法使用 readline,但我希望能够在您从用户那里检索输入的同一点完成制表符。

【问题讨论】:

    标签: .net console


    【解决方案1】:

    执行 Console.ReadKey()。

    如果您得到一个 Tab,请查看命令缓冲区中的内容,然后循环浏览可用的命令。如果someCommand.Name.BeginsWith(currentinput),你有一个赢家,你可以写屏幕可能的命令列表。

    如果只有一个(TM),您可以用用户输入的内容替换它:)

    【讨论】:

    • 不能在 readline 的并行中调用使用 readkey 可以吗?所以这意味着你失去了 readline 功能,你需要循环 readkey 并手动附加/显示什么输入。 Readline 具有带有“向上”键的历史调用功能,您将丢失该功能,或者需要使用 readkey 完全重新编码。最适合 c14n 的是找到一个混合解决方案。 (比如使用 Async readline ?)
    【解决方案2】:

    我创建了一个小库来将此功能添加到我制作的应用程序中:

    https://github.com/fjunqueira/hinter

    它可能不适合您的需要,但您可以随意编辑它。

    【讨论】:

      【解决方案3】:

      看看 Mono 项目中的这段代码 http://tirania.org/blog/archive/2008/Aug-26.html 前几天我玩过它。 它做了很多命令行编辑,但我不认为它会完成行。

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          https://github.com/tonerdo/readline 是您所需要的。 伟大的库可作为天才开发者 tonerdo 的 nuget。

          【讨论】:

          猜你喜欢
          • 2014-08-12
          • 2011-10-21
          • 1970-01-01
          • 2013-07-11
          • 2015-12-09
          • 2018-12-07
          • 2011-06-15
          • 2010-10-30
          • 1970-01-01
          相关资源
          最近更新 更多