edex-ui 命令行_4个具有出色命令行UI的终端应用程序

edex-ui 命令行

在本文中,我将探讨命令行界面的缺点-可发现性-以及克服此问题的几种方法。

我喜欢命令行。 我的第一个命令行是1997年的DOS 6.2。我学习了各种命令的语法,并展示了如何在目录( attrib )中列出隐藏文件。 我会一次精心地设计我的命令。 如果输入有误,请从头开始重新输入命令。 有一天,有人向我展示了如何使用向上和向下箭头键浏览历史记录,我被震撼了。

后来,当我被介绍给Linux时,令我惊喜的是上下箭头保留了遍历历史的能力。 我仍在仔细地输入每个字符,但现在我知道如何触摸输入,并且每分钟55个单词的表现非常出色。 然后有人向我展示了制表符补全,再次改变了我的生活。

在GUI应用程序菜单中,工具提示和图标用于为用户宣传功能。 命令行缺乏这种能力,但是有一些方法可以解决此问题。 在深入研究解决方案之前,我将介绍几个有问题的CLI应用程序:

1. MySQL

首先,我们拥有我们心爱MySQL REPL。 我经常发现自己输入SELECT * FROM ,然后出于习惯习惯按Tab 。 MySQL询问我是否想查看所有871种可能性。 我绝对肯定数据库中没有871个表。 如果我说“ 是” ,它将显示一堆SQL关键字,表,函数等。

MySQL的gif

2. Python

让我们看另一个示例,标准的Python REPL。 我开始键入命令,然后习惯了按Tab键。 Lo并且看到插入了Tab字符,考虑到Tab字符在Python源代码中没有任何作用,这是一个问题。

Python gif

好的用户体验

现在,让我们看一下设计良好的CLI程序以及它们如何克服一些可发现性问题。

自动补全:bpython

Bpython是Python REPL的理想替代品。 当我启动bpython并开始输入时,建议立即出现。 我没有通过特殊的按键组合来触发它们,甚至没有通过著名的Tab键触发它们。

bpython gif

当我不习惯按Tab键时,它会完成列表中的第一个建议。 这是将可发现性引入CLI设计的一个很好的例子。

bpython的下一个方面是它展示有关模块和函数的文档的方式。 当我键入一个函数的名称时,它会显示函数签名和函数附带的文档字符串。 多么贴心的设计。

上下文感知完成:mycli

Mycli是默认MySQL客户端的现代替代品。 该工具对MySQL的作用类似于bpython对标准Python REPL的作用。 Mycli将在您键入关键字时自动完成关键字,表名,列和函数。

完成建议是上下文相关的。 例如,在SELECT * FROM之后, 补全中仅列出当前数据库中的表,而不列出sun下的所有可能关键字。

mycli gif

模糊搜索和在线帮助:pgcli

如果您正在寻找mycli的PostgreSQL版本,请查看pgcli 。 与mycli一样,提供了上下文感知的自动完成功能。 使用模糊搜索缩小菜单中的项目。 模糊搜索允许用户键入整个字符串不同部分的子字符串,以尝试找到正确的匹配项。

pgcli gif

pgcli和mycli都在其CLI中实现了此功能。 斜杠命令的文档作为完成菜单的一部分提供。

可发现性:鱼

在传统的Unix shell(Bash,zsh等)中,有一种搜索历史记录的方法。 此搜索模式由Ctrl-R触发。 这是一个非常有用的工具,可用于调回您上周运行的以sshdocker开头的命令。 了解此功能后,您会发现自己经常使用它。

如果此功能非常有用,为什么不一直搜索呢? 那是什么贝壳一样。 一旦您开始键入命令, fish就会开始从历史记录中建议与您所键入的命令相似的命令。 然后,您可以按右箭头键接受该建议。

命令行礼节

我已经审查了解决可发现性问题的创新方法,但是有一些命令行基础知识,每个人都应将其作为REPL基本功能的一部分进行实施:

  • 确保REPL具有可通过箭头键调用的历史记录。 确保历史记录在会话之间仍然存在。
  • 提供一种在编辑器中编辑命令的方法。 不管您的完成多么出色,有时用户只需要一个编辑器就可以制作出完美的命令来删除生产中的所有表格。
  • 使用寻呼机通过管道传递输出。 不要让用户在其终端上滚动。 哦,对您的寻呼机使用合理的默认设置。 (添加用于处理颜色代码的选项。)
  • 提供一种通过Ctrl-R界面或式自动搜索历史记录的方法。

结论

第2部分中 ,我将研究Python中的特定库,这些库使您可以实现这些技术。 同时,请检查以下一些设计良好的命令行应用程序:

  • bpythonptpython :具有自动完成功能的Python花式REPL。
  • http-prompt :交互式HTTP客户端。
  • mycli :MySQL,MariaDB和Percona的命令行界面,具有自动完成功能和语法突出显示功能。
  • pgclipsql的替代方法,具有自动完成功能和语法突出显示功能。
  • wharfee :用于管理Docker容器的shell。

在Amjith Ramanujam的PyCon US 2017演讲, Awesome Commandline Tools (5月20日在俄勒冈州波特兰)中了解更多信息。

翻译自: https://opensource.com/article/17/5/4-terminal-apps

edex-ui 命令行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值