忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1238 | 回复: 1

[学习共享] 《我赶脚shell的tab补全,跟屎一样》 [复制链接]

论坛徽章:
0
发表于 2018-03-09 16:16 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2018-03-12 12:14 编辑

======================================================

上篇:《我赶脚shell的tab补全,跟屎一样》  即本篇

上篇别名:《tab键哭诉道:“powershell,别总摸我”》

下篇:《我赶脚shell参数,跟屎一样》  估计一个月内可以写完,敬请期待。

======================================================


大家想过没有?
为什么?linux要有重名的,长短参数。
如:ls -R, --recursive                递归显示子目录
而powreshell不支持【--】,所有参数都用【-】。为什么?
           
假设!有这样一条命令:
mysql -u xxx #linux格式
mysql --username xxx #linux格式
mysql -username xxx #ps格式


因为不论linux命令,还是自己写的linux脚本,都不支持参数补全!!!(只支持命令补全)
那大家当然都想少敲几下键盘,都想用mysql -u xxx了。

而ps没有这个问题。ps中,无论微软开发的ps命令,第三方公司开发的命令,还是自己写的函数,或自己写的脚本。
全部都可以用-u<tab键>,来补全参数-username。或者用:
-<tab键>,来补全参数-username。

而且powershell的补全---》psreadline,

shell的补全---》readline,
强,复杂太多。
因为ps是面向对象的,psreadline【还要】能补全对象的属性,方法。
如(get-process qq).c然后打<tab>




结论:
命令补全,参数补全,是特别老的东西,不是先进的新发明。但,
我赶脚shell的tab补全,跟屎一样。

而powershell能补全的【项目】是:(即psreadline的补全项目是)
命令名:微软开发的powershell命令。第三方公司开发的powershell命令。自己写的ps脚本。cmd外部命令。linux外部命令。
参数名:微软开发的powershell命令。第三方公司开发的powershell命令。自己写的ps脚本。自己写的ps函数。linux命令的参数,无法tab补全。cmd命令的参数,无法tab补全。
属性名:微软开发的powershell命令。第三方公司开发的powershell命令。自己写的ps脚本。自己写的ps函数。
方法名:微软开发的powershell命令。第三方公司开发的powershell命令。自己写的ps脚本。自己写的ps函数。

【靓妹tab】惊叫道:“powershell,拿走你的臭手,你干嘛总摸我”
抠脚大汉powershell道:“我为命令的【参数补全】而痴狂。bash和zsh,没有参数补全功能,不摸你,我能怎么办?”

问:那么说powershell的补全功能,就完美么?
答:我认为也不完美!
但,powershell的补全功能,即psreadline模块,是个人 + 业余时间 + 免费开源作品。不是拿微软工资开发的。
所以,大家应该包容这个【个人业余免费开源作品】。



问:你所知道的,psreadline有什么问题?
答:
psreadline的开发者【lzybkr】,是美国人,天生不擅长处理中文。
对命令行中有中文这个部分,还有不少问题。
linux中的pwsh命令行,有时候会出现中文多行问题。



问:如何解决psreadline上述问题?
答:
1 去github去提交bug。
https://github.com/lzybkr/PSReadLine/issues


2安装最新测试版。据我所知,解决了大部分问题。
以linux + pwsh为例:
Install-Module -Name PSReadLine -AllowPrerelease


论坛徽章:
0
发表于 2018-03-09 17:05 |显示全部楼层
说的太对了,支持楼主。

还是 bash 好。

评分

参与人数 1信誉积分 +5 收起 理由
dorodaloo + 5 说的太对了!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP