Azure/go-ansiterm

GitHub: Azure/go-ansiterm

一个 Go 语言编写的 ANSI 终端模拟库,通过 VT100 状态机解析转义序列并在 Windows 上实现终端控制功能。

Stars: 87 | Forks: 29

# go-ansiterm 例如,parser(解析器)可能会收到由三个字符组成的流 "ESC, [, A"。这是 Cursor Up(光标上移)的代码(http://www.vt100.net/docs/vt510-rm/CUU)。随后,parser 会在 event handler(事件处理器)上调用光标上移函数(CUU())。event handler 负责决定需要执行哪些特定于平台的操作,才能使光标向上移动一个位置。 parser(parser.go)是此状态机(http://vt100.net/emu/vt500_parser.png)的一个部分实现。此外还有两个 event handler 实现,一个用于测试(test_event_handler.go),以验证是否生成并调用了预期的事件;另一个是 Windows 实现(winterm/win_event_handler.go)。 有关测试该状态机并生成相应函数调用的示例,请参阅 parser_test.go。 本项目采用了 [Microsoft 开源行为准则](https://opensource.microsoft.com/codeofconduct/)。有关更多信息,请参阅[行为准则 FAQ](https://opensource.microsoft.com/codeofconduct/faq/),如果有任何其他问题或意见,请联系 [opencode@microsoft.com](mailto:opencode@microsoft.com)。
标签:ANSI转义码, EVTX分析, Go, Ruby工具, 日志审计, 端点可见性, 终端