博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
edex-ui 命令行_4个具有出色命令行UI的终端应用程序
阅读量:2529 次
发布时间:2019-05-11

本文共 1987 字,大约阅读时间需要 6 分钟。

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

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

bpython gif

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

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

上下文感知完成:mycli

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

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

mycli gif

模糊搜索和在线帮助:pgcli

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

pgcli gif

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

可发现性:鱼

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

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

命令行礼节

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

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

结论

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

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

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

翻译自:

edex-ui 命令行

转载地址:http://twpzd.baihongyu.com/

你可能感兴趣的文章
铁路信号基础
查看>>
RobotFramework自动化2-自定义关键字
查看>>
[置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了
查看>>
BABOK - 需求分析(Requirements Analysis)概述
查看>>
第43条:掌握GCD及操作队列的使用时机
查看>>
Windows autoKeras的下载与安装连接
查看>>
CMU Bomblab 答案
查看>>
微信支付之异步通知签名错误
查看>>
2016 - 1 -17 GCD学习总结
查看>>
linux安装php-redis扩展(转)
查看>>
Vue集成微信开发趟坑:公众号以及JSSDK相关
查看>>
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>
react.js
查看>>
P1313 计算系数
查看>>
NSString的长度比较方法(一)
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>