本文共 1987 字,大约阅读时间需要 6 分钟。
edex-ui 命令行
在本文中,我将探讨命令行界面的缺点-可发现性-以及克服此问题的几种方法。
我喜欢命令行。 我的第一个命令行是1997年的DOS 6.2。我学习了各种命令的语法,并展示了如何在目录( attrib )中列出隐藏文件。 我会一次精心地设计我的命令。 如果输入有误,请从头开始重新输入命令。 有一天,有人向我展示了如何使用向上和向下箭头键浏览历史记录,我被震撼了。
后来,当我被介绍给Linux时,令我惊喜的是上下箭头保留了遍历历史的能力。 我仍在仔细地输入每个字符,但现在我知道如何触摸输入,并且每分钟55个单词的表现非常出色。 然后有人向我展示了制表符补全,再次改变了我的生活。
在GUI应用程序菜单中,工具提示和图标用于为用户宣传功能。 命令行缺乏这种能力,但是有一些方法可以解决此问题。 在深入研究解决方案之前,我将介绍几个有问题的CLI应用程序:
首先,我们拥有我们心爱MySQL REPL。 我经常发现自己输入SELECT * FROM ,然后出于习惯习惯按Tab 。 MySQL询问我是否想查看所有871种可能性。 我绝对肯定数据库中没有871个表。 如果我说“ 是” ,它将显示一堆SQL关键字,表,函数等。
让我们看另一个示例,标准的Python REPL。 我开始键入命令,然后习惯了按Tab键。 Lo并且看到插入了Tab字符,考虑到Tab字符在Python源代码中没有任何作用,这是一个问题。
现在,让我们看一下设计良好的CLI程序以及它们如何克服一些可发现性问题。
是Python REPL的理想替代品。 当我启动bpython并开始输入时,建议立即出现。 我没有通过特殊的按键组合来触发它们,甚至没有通过著名的Tab键触发它们。
当我不习惯按Tab键时,它会完成列表中的第一个建议。 这是将可发现性引入CLI设计的一个很好的例子。
bpython的下一个方面是它展示有关模块和函数的文档的方式。 当我键入一个函数的名称时,它会显示函数签名和函数附带的文档字符串。 多么贴心的设计。
是默认MySQL客户端的现代替代品。 该工具对MySQL的作用类似于bpython对标准Python REPL的作用。 Mycli将在您键入关键字时自动完成关键字,表名,列和函数。
完成建议是上下文相关的。 例如,在SELECT * FROM之后, 补全中仅列出当前数据库中的表,而不列出sun下的所有可能关键字。
如果您正在寻找mycli的PostgreSQL版本,请查看 。 与mycli一样,提供了上下文感知的自动完成功能。 使用模糊搜索缩小菜单中的项目。 模糊搜索允许用户键入整个字符串不同部分的子字符串,以尝试找到正确的匹配项。
pgcli和mycli都在其CLI中实现了此功能。 斜杠命令的文档作为完成菜单的一部分提供。
在传统的Unix shell(Bash,zsh等)中,有一种搜索历史记录的方法。 此搜索模式由Ctrl-R触发。 这是一个非常有用的工具,可用于调回您上周运行的以ssh或docker开头的命令。 了解此功能后,您会发现自己经常使用它。
如果此功能非常有用,为什么不一直搜索呢? 那是什么一样。 一旦您开始键入命令, fish就会开始从历史记录中建议与您所键入的命令相似的命令。 然后,您可以按右箭头键接受该建议。
我已经审查了解决可发现性问题的创新方法,但是有一些命令行基础知识,每个人都应将其作为REPL基本功能的一部分进行实施:
在 ,我将研究Python中的特定库,这些库使您可以实现这些技术。 同时,请检查以下一些设计良好的命令行应用程序:
在Amjith Ramanujam的演讲, (5月20日在俄勒冈州波特兰)中了解更多信息。
翻译自:
edex-ui 命令行
转载地址:http://twpzd.baihongyu.com/