;继续打开终端窗口并键入:如何在Swift 4中编写一个命令行界面,其功能类似于Unix手册页?例如:
man ls
查看;请注意,您可以使用箭头键在文本中上下移动,并且现在缺少终端历史记录。
使用“q”退出。
现在返回终端历史记录。
我试图了解如何编写一个上面的界面:终端历史消失并重新出现在退出和最重要的是接口能够将按键作为输入而不是使用readLine( )。
在清屏前,我管理的ANSI转义代码:
从而清除屏幕并从底部开始的光标,但只有真正实现换行和推动旧内容关闭屏幕不同于删除可滚动历史的手册页。所以目前不是我想要实现的。
至于以按键输入,我一直没能找到很多,但基金会有3个引用:
standardInput
开发者文档列出他们FileHandle,NSUserUnixTask &进程。我希望他们中的一个可能可以听按键,然后用一个通知来响应,我可以用正确的屏幕更新我的界面,清除并重新定位文本或者执行一个动作(如退出并返回到正常提示为“man”对“q”的按下)。
希望对此有所帮助,谢谢!
仅供参考 - 当你运行'男人ls',然后与输出互动,你实际上是现在运行取决于'PAGER'环境的价值'more'(或'less')命令变量。所以你要问的是如何实现类似'more'或'less'命令的东西。 – rmaddy
@rmaddy这是正确的;但我主要是在他们如何实现上面列出的两个主要功能之后。 – ANoobSwiftly