ReadLine 2.0.1

dotnet add package ReadLine --version 2.0.1                
NuGet\Install-Package ReadLine -Version 2.0.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="ReadLine" Version="2.0.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add ReadLine --version 2.0.1                
#r "nuget: ReadLine, 2.0.1"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将其复制到交互工具或脚本源代码中以引用包。
// Install ReadLine as a Cake Addin
#addin nuget:?package=ReadLine&version=2.0.1

// Install ReadLine as a Cake Tool
#tool nuget:?package=ReadLine&version=2.0.1                

Windows build status License: MIT NuGet version

ReadLine

ReadLine 是一个使用纯 C# 编写的类似于 GNU Readline 的库。它可以作为内置 Console.ReadLine() 的替代品,并带来了来自 UNIX shell 的一些终端优点,如命令历史记录导航和自动完成。

它是跨平台的,在 .NET 支持的任何地方运行,针对 netstandard1.3 的目标意味着它可以与 .NET Core 以及完整的 .NET Framework 一起使用。

快捷方式指南

快捷键 注释
Ctrl+A / HOME 行首
Ctrl+B / 向前一个字符
Ctrl+C 发送 EOF
Ctrl+E / END 行尾
Ctrl+F / 向后一个字符
Ctrl+H / Backspace 删除前一个字符
Tab 命令行完成
Shift+Tab 向后命令行完成
Ctrl+J / Enter 换行
Ctrl+K 剪切文本到行尾
Ctrl+L / Esc 清除行
Ctrl+M 与 Enter 键相同
Ctrl+N / 历史记录中的下一个
Ctrl+P / 历史记录中的上一个
Ctrl+U 剪切文本到行首
Ctrl+W 剪切前一个单词
退格键 删除前一个字符
Ctrl + D / Delete 删除后续字符

安装

NuGet 上可用

Visual Studio

PM> Install-Package ReadLine

.NET Core 命令行工具

dotnet add package ReadLine

用法

从控制台读取输入

string input = ReadLine.Read("(prompt)> ");

从控制台读取密码

string password = ReadLine.ReadPassword("(prompt)> ");

注意:(prompt>) 是可选的

历史记录管理

// Get command history
ReadLine.GetHistory();

// Add command to history
ReadLine.AddHistory("dotnet run");

// Clear history
ReadLine.ClearHistory();

// Disable history
ReadLine.HistoryEnabled = false;

注意:历史信息在整个应用程序会话中保持持久。此外,对 ReadLine.Read() 的调用会自动将控制台输入添加到历史记录中

自动完成

class AutoCompletionHandler : IAutoCompleteHandler
{
    // characters to start completion from
    public char[] Separators { get; set; } = new char[] { ' ', '.', '/' };

    // text - The current text entered in the console
    // index - The index of the terminal cursor within {text}
    public string[] GetSuggestions(string text, int index)
    {
        if (text.StartsWith("git "))
            return new string[] { "init", "clone", "pull", "push" };
        else
            return null;
    }
}

ReadLine.AutoCompletionHandler = new AutoCompletionHandler();

注意:如果没有设置 "AutoCompletionHandler",则禁用TAB自动完成

贡献

我们非常欢迎贡献。如果您发现了一个错误或有一个功能请求,请在此存储库问题部分报告它们。

您可以帮忙的事情

  • 实现与 GNU Readline 相等的命令兼容性。
  • 添加更多的测试用例。

许可

本项目遵守 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。

产品 兼容和额外的计算目标框架版本。
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET 标准库 netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包括的目标框架(在包中)
了解有关 目标框架.NET 标准库 的详细信息。
  • .NETStandard 2.0

    • 无依赖项。

NuGet 包 (11)

显示依赖于 ReadLine 的前 5 个 NuGet 包

下载
Dotnet.Script.Core

一个跨平台库,允许您运行支持调试和内联 NuGet 包的 C# (CSX) 脚本。基于 Roslyn。

OpenMod.Core

OpenMod 核心服务实现

StoneFruit

CLI 命令行宿主和执行引擎

Froda.Console

Froda 控制台

MineNET

MinecraftBE 服务器

GitHub 代码仓库 (7)

展示依赖 ReadLine 的前 5 个最受欢迎的 GitHub 代码仓库

代码仓库 星标
dotnet-script/dotnet-script
从 .NET 命令行运行 C# 脚本。
KSP-CKAN/CKAN
全面 Kerbal 归档网络
microsoft/kernel-memory
RAG 架构:使用大型语言模型和自然语言索引和查询任何数据,跟踪来源,显示引用,异步内存模式。
NethermindEth/nethermind
为以太坊节点运营商提供强大的执行客户端。
DigitalRuby/ExchangeSharp
ExchangeSharp 是一个强大、快速且易于使用的 .NET/C# API,用于与许多加密货币交易所接口。支持 REST 和 WebSocket。
版本 下载 最后更新
2.0.1 1,372,180 6/12/2018
2.0.0 35,927 1/10/2018
1.2.0 16,640 5/22/2017
1.1.1 1,171 3/26/2017
1.1.0 1,065 3/4/2017
1.0.0 1,354 2/10/2017