Linux 命令的 tab 补全, powershell 的 tab 补全,对比大讨论!

2019-04-23 13:28:53 +08:00
 ps1aniuge
问:如何给 powershell 脚本起名? xxx.ps1
问:powershell 脚本名,如何 tab 补全?
答:
建议用 2---3 个字母打头,剩下用中文文件名。即 [ bf 备份所有旧文件_并删除 10 天前的.ps1 ]
这样先打 [ bf ] ,然后再打 tab 即可补全脚本名。






问:自己编写的 powershell 脚本的参数名,如何 tab 补全?
问:powershell 参数名,如何 tab 补全?
答:
打脚本名 -<打 tab>即可补全(含中文参数)
再打 tab 即可补全第二个参数。

例子:
-------a.ps1 开始-------
param
(
$君不见黄河之水天上来_飞流直下 3333 千尺
)
echo $君不见黄河之水天上来_飞流直下 3333 千尺
-------a.ps1 结束-------

运行:
./a.ps1 -<打 tab>
即可出现:
./a.ps1 -君不见黄河之水天上来_飞流直下 3333 千尺











问:powershell 方法名,如何 tab 补全?
答:
目的:把字符 a 通过 toupper()方法,变成大写。

'a'.toup<tab>
返回:
'a'.ToUpper(









问:powershell 属性名,如何 tab 补全?
答:
例子
1 运行 qq。
2 输入(get-process qq).w
3 打 tab
返回
(get-process qq).WorkingSet






问:如何评价 powershell 的 tab 补全?
问:powershell 的 tab 补全,你有啥结论?
答:
通过上面的学习我们看到,powershell 可以补全:
1 powershell 命令名,(含 cmd 命令,第三方命令)
2 系统文件名,
3 powershell 参数名,
4 你自己编写的 powershell 脚本的参数名,100%可以补全。
5 powershell 方法名,
6 powershell 属性名,
这些内容中,完全可以含有中文。






问:如何评价 bash 的 tab 补全?
问:bash 的 tab 补全,你有啥结论?
答:
bash 可以补全:
1 外部命令名,(含第三方命令)
2 系统文件名,

3 99% 的 [ linux 命令参数名] 无 tab 补全!
或者说,大家都不装,都不用 linux 命令的参数补全。

理由如下:

3.1 虽然有写好的 linux 命令参数补全包,但不是默认安装。这导致了:
只有 1%的人安装使用了参数名补全。剩下 99%的人不用参数名补全,他们用手输单个字母参数名。
单个字母参数名,没有全单词,没有驼峰命名,这又导致了参数名不好记。

3.2 “第三方的 [ linux 命令参数名] 无法 tab 补全!”

这导致了“第三方的 [ linux 命令参数名] 的 tab 补全,需要其他方法,额外安装”


4 99.99% [你自己编写的 shell 脚本参数名] 无法 tab 补全!

[你自己编写的 shell 脚本参数名] ,想要有参数补全,必须单独编写补全脚本。
并存放在 bash 插件目录,这导致了“ 99.99% [你自己编写的 shell 脚本参数名] 无法 tab 补全”
powershell 不需要单独编写补全脚本。所以“你自己编写的 powershell 脚本的参数名,100%可以补全。”而且非常简单。






问:bash 的 tab 补全,和 powershell 的 tab 补全,有何不同?
答:
1 bash 没有属性和方法,所以上数第 5,6 条差异,大家应该没有异议。

2 当命令名,参数名,属性名,方法名中,有中文的时候,
powershell 中文补全好,bash 中文补全差,或者无法补全。这一点大家有异议么?





问:安装 [命令参数名 tab 补全] 后的 bash 更慢?还是 powershell 补全更慢?
答:
我不知道。我只知道 powershell 这边默认带有所有补全。bash 这边默认不带。




bash 这边,最终结论:
假如说补全是灯。那么 bash 这边一边漆黑。powershell 这边一片光明。
一副好牌让 bash 打烂了。
bash 人几乎不用 [参数名 tab 补全] ,他们用 [手动输入单个字母参数名] ,如 ps -e -f



powershell 这边,最终结论:
英文大小写并不是问题。
powershell 命令更长,powershell 参数更长,更容易理解。
powershell 补全比 bash 好。但由于 powershell 命令更长,参数更长,所以 powershell 更依赖 tab 补全。
4595 次点击
所在节点    Linux
7 条回复
lihongjie0209
2019-04-23 13:31:29 +08:00
毕竟要对得起 50M 的安装包大小
一个 jre 也就 40M 吧
ps1aniuge
2019-04-23 13:54:02 +08:00
jre8=68mb,已经淘汰。没有 jre11,jre12,只有 jdk,jdk 更大。
atbeta
2019-04-23 15:46:55 +08:00
如果你用过 zsh 大概就不会这么说了
如果你用过 zsh,并且再稍微安装过几个常用的插件,就更不会这么说了
rongself
2019-04-23 15:56:08 +08:00
oh-my-zsh + zsh-autosuggestions 爽到飞起,虽然没有参数补全,但只要打过一次那个命令就会有自动补全,基本够用了
lihongjie0209
2019-04-23 16:00:18 +08:00
no1xsyzy
2019-04-23 16:07:35 +08:00
头号 PowerShell 吹你来了。
Bash 的补全至少可以通过拓展来补全奇怪的东西,比如 apt install <tab>,可以补全包名
但 choco install <tab> 不行,只能补全当前文件夹下的文件。
apt i<tab> 可以补全 install,而 choco i<tab> 不行
1010543618
2019-04-23 23:40:52 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557876

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX