V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
2000 个不用坐班的远程好工作在召唤你 · 弹性上班不打卡,工作和生活都能拥有
2000 个不用坐班的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
MEIyiyi
V2EX  ›  程序员

Linux 有 zsh 历史代码提示,那 window 有没有什么代表提示类工具?

  •  
  •   MEIyiyi · 103 天前 · 2663 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前公司用的 Mac 电脑,装了 zsh 后发现非常好用,但 window 没有 zsh ,只能装 wsl 再配置 zsh ,但每次都要装 wsl 也太麻烦了,请问 window 有没有这种代码提示工具?

    24 条回复    2022-06-13 20:29:56 +08:00
    zzz22333
        1
    zzz22333  
       103 天前 via Android
    oh my powershell 还不错
    xwcs
        2
    xwcs  
       103 天前
    psreadline 自带了
    Set-PSReadLineOption -PredictionSource HistoryAndPlugin
    https://docs.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.2
    wdssmq
        3
    wdssmq  
       103 天前   ❤️ 1
    Starship:可用于各种 Shell 的提示符
    https://starship.rs/zh-CN/

    这个?
    Buges
        4
    Buges  
       103 天前 via Android
    以前用 Windows 的时候用 msys2 里的 fish ( zsh 配合插件性能太差了),PowerShell 的补全跟提示倒不是没有,但效果太差。
    MEIyiyi
        5
    MEIyiyi  
    OP
       103 天前
    呼,谢谢各位,我看看哪个合适
    ysc3839
        6
    ysc3839  
       103 天前 via Android
    Windows 有 zsh ,可以用 Cygwin 或 MSYS2 。

    @Buges 个人使用 Oh My Zsh 以及 zsh-autosuggestions 和 zsh-syntax-highlighting 这两个插件,主题使用的是 powerlevel10k ,感觉上性能并不差。
    Huelse
        7
    Huelse  
       103 天前
    a33291
        8
    a33291  
       103 天前
    nushell
    sky96111
        9
    sky96111  
       103 天前
    @Buges PowerShell 补全最大的问题就是只有带枚举参数的 PS 函数才能补全,其他的只能补全路径。要是和 fish 、zsh 那样支持添加补全规则会好得多
    Buges
        10
    Buges  
       103 天前 via Android
    @ysc3839 插件会有很多进程创建,win 下模拟层运行环境中性能极为差劲。我之前用的时候启动要几秒,tab 补全列表展开也要几秒。
    @sky96111 不是只能,pwsh 也能为命令写补全插件,但大部分都是没有的,我之前用的时候只有 scoop/git 等少数命令支持,不知道现在如何了。
    shuax
        11
    shuax  
       103 天前   ❤️ 1
    sulinwork
        12
    sulinwork  
       103 天前
    wsl2 + zsh 很香
    Kasumi20
        13
    Kasumi20  
       103 天前
    #11 没错,就是这个,clink ,贼好用,直接把 cmd 给干碎了

    Microsoft Windows [版本 10.0.19041.1415]
    (c) Microsoft Corporation 。保留所有权利。

    Clink v1.3.7.4269ce
    Copyright (c) 2012-2018 Martin Ridgers
    Portions Copyright (c) 2020-2022 Christopher Antos
    https://github.com/chrisant996/clink

    C:\Users\xx>
    bigtear
        14
    bigtear  
       103 天前
    clink
    sky96111
        15
    sky96111  
       103 天前 via Android
    @Buges scoop 和 git 都只有文件路径补全,开启 PS Readline 也一样。我稍微研究过一下 pwsh 函数参数的补全,想要参数补全必须
    1. 命令是一个 PS 函数
    2. 参数是枚举体
    scoop 虽然是用 PS 语法写的,但是一个 ps1 脚本不是函数,故没法补全。git 是单独的 exe ,就更不能了。
    所以为第三方命令写补全插件,得把它包装成函数放到$profiles 里,太麻烦了
    https://github.com/sky96111/pwsh_dotfile/blob/main/Microsoft.PowerShell_profile.ps1
    ysc3839
        16
    ysc3839  
       103 天前
    @Buges 启动新进程确实是慢,但是好的插件并不会启动大量进程。我目前使用的这几个插件也就启动时会慢一点,但是 powerlevel10k 有 Instant prompt 功能,在等待其他插件启动时就能先显示出提示符。powerlevel10k 显示 git 信息是在后台一直运行一个 gitstatusd 进程,并不会很慢。
    Buges
        19
    Buges  
       103 天前 via Android
    @sky96111 需要安装第三方的补全模块,并在你的 PowerShell profile 里加载。这点和 zsh/fish 是一样的。
    https://github.com/Moeologist/scoop-completion
    @ysc3839 这不是写的好能避免的,shell 编程中很多操作都需要组合各种外部工具( unix 哲学),这就意味着不断的创建新进程。
    不过现在已经很久没有用 Windows 了,换成 GNU/linux 后命令行方面真的是省心太多。
    heart4lor
        20
    heart4lor  
       103 天前
    MSYS2 装 fish shell ,当然也可以 zsh
    ysc3839
        21
    ysc3839  
       103 天前 via Android
    @Buges 把开销大的程序作为后台服务运行,这就是一种避免的方案。更高级的 shell 也会把一些频繁使用到的功能内置进来,比如 bash 就内置了正则表达式。而且上述几个插件,我个人使用感受并不如你所说的连补全都要几秒。
    个人建议还是自己体验看看能否接受,不要仅仅是一顿理论分析就否定。
    相比选择 PowerShell 等其他方案,选择 Unix shell 往往有更好的生态,跨平台的统一体验。不需要记忆 PowerShell 繁琐的命令,也不像 cmd 那样缺失各种功能。
    aaniao002
        22
    aaniao002  
       103 天前 via Android
    wsl 呀,你想啥呢。windows 命令行那也叫命令行?
    Buges
        23
    Buges  
       103 天前 via Android
    @ysc3839 关键在于*nix 下正常情况创建进程开销不大,只有 cygwin 模拟层下才有明显性能问题,所以很难指望这些脚本针对性优化,不如换 fish 拉倒。
    可能我之前 scoop 装的命令比较多,scoop 对每个程序都创建好几个启动 shim (.exe .bat .ps1 sh 脚本),tab 补全应用列表要好几秒才出来。
    ysc3839
        24
    ysc3839  
       103 天前 via Android
    @Buges 但是实际上是有的插件确实会针对性优化,所以我说好的插件是能避免。如果你刚需的插件都写得不好,那确实是没什么办法了,但至少我自己用到的插件没这么多问题。
    而且不仅 Windows ,macOS 下使用 fork 也会比使用 posix_spawn 慢。
    坏的插件在 Unix 下也会拖慢速度 https://blog.skk.moe/post/make-oh-my-zsh-fly/
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1894 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 01:17 · PVG 09:17 · LAX 18:17 · JFK 21:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.