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 · 4586 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问:如何给 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 的参数补全”

    https://www.v2ex.com/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   ·   实用小工具   ·   5315 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:29 · PVG 15:29 · LAX 23:29 · JFK 02:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.