Linux 命令的 tab 补全, powershell 的 tab 补全,对比大讨论! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ps1aniuge
V2EX    Linux

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

  •  
  •   ps1aniuge 2019-04-23 13:28:53 +08:00 5185 次点击
    这是一个创建于 2439 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问:如何给 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 补全。
    第 1 条附言    2019-05-14 13:29:54 +08:00
    从“撸串.ps1 ”开始学习 “ powershell 的参数补全”

    t/563986
    7 条回复    2019-04-23 23:40:52 +08:00
    lihongjie0209
        1
    lihongjie0209  
       2019-04-23 13:31:29 +08:00
    毕竟要对得起 50M 的安装包大小
    一个 jre 也就 40M 吧
    ps1aniuge
        2
    ps1aniuge  
    OP
       2019-04-23 13:54:02 +08:00
    jre8=68mb,已经淘汰。没有 jre11,jre12,只有 jdk,jdk 更大。
    atbeta
        3
    atbeta  
       2019-04-23 15:46:55 +08:00
    如果你用过 zsh 大概就不会这么说了
    如果你用过 zsh,并且再稍微安装过几个常用的插件,就更不会这么说了
    rongself
        4
    rongself  
       2019-04-23 15:56:08 +08:00
    oh-my-zsh + zsh-autosuggestions 爽到飞起,虽然没有参数补全,但只要打过一次那个命令就会有自动补全,基本够用了
    no1xsyzy
        6
    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
        7
    1010543618  
       2019-04-23 23:40:52 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2900 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:03 PVG 19:03 LAX 03:03 JFK 06:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86