V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
binaryify
V2EX  ›  程序员

Windows 上有 zsh 的替代品吗

  •  
  •   binaryify · 2021-04-08 14:43:08 +08:00 · 8143 次点击
    这是一个创建于 1329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上班用 Mac,回家用 Windows,但是这么多年了,还是没找到比较好的使用 zsh 的解决方案,wsl 倒是可以,但是感觉太小题大做了,我就想要和 zsh 相同的命令补全和命令历史补全体验,但是 2021 年了还是不行,cmder 的历史能用,但是体验差好多

    第 1 条附言  ·  2021-04-08 22:19:36 +08:00
    Windows Terminal + oh my posh 确实很舒服
    54 条回复    2021-04-10 19:39:33 +08:00
    finallyeva
        1
    finallyeva  
       2021-04-08 14:45:35 +08:00   ❤️ 1
    windows terminal
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       2021-04-08 14:45:50 +08:00   ❤️ 3
    powershell 啊.
    https://ohmyposh.dev/
    nicevar
        3
    nicevar  
       2021-04-08 14:50:15 +08:00   ❤️ 1
    windows terminal+oh my posh
    binaryify
        4
    binaryify  
    OP
       2021-04-08 14:51:02 +08:00
    @zhuangzhuang1988 稳,晚上回去我试试
    binaryify
        5
    binaryify  
    OP
       2021-04-08 14:51:29 +08:00
    @nicevar 可以,晚上回去我试试
    Tumblr
        6
    Tumblr  
       2021-04-08 14:56:12 +08:00   ❤️ 1
    Windows Terminal + PowerShell + PSReadLine + Oh-My-Posh


    PSReadLine 和 PowerShell 都对版本有要求,直接最新就 OK 了。
    hellowmykami
        7
    hellowmykami  
       2021-04-08 14:57:06 +08:00
    就我用的 cmder 吗...
    CallMeReznov
        8
    CallMeReznov  
       2021-04-08 14:59:48 +08:00   ❤️ 1
    root01
        9
    root01  
       2021-04-08 15:00:43 +08:00
    @Tumblr 我看了下 安装好麻烦
    root01
        10
    root01  
       2021-04-08 15:02:49 +08:00
    我用 xshell 敲 win 命令也不错啊
    nightwitch
        11
    nightwitch  
       2021-04-08 15:08:02 +08:00
    zsh 也有 msys2 的移植版,自己装一个就行
    binaryify
        12
    binaryify  
    OP
       2021-04-08 15:08:14 +08:00
    @root01 #10 zsh 用了就很难回去了,真的好用
    lithiumii
        13
    lithiumii  
       2021-04-08 15:13:18 +08:00
    PowerShell 也还行吧,折腾了一番 oh-my-posh 等等插件
    (但平时还是在 WSL 里用 zsh

    https://vip2.loli.io/2021/04/08/XnHtvkA7qyN8KOY.png
    Tumblr
        14
    Tumblr  
       2021-04-08 15:19:07 +08:00
    @root01 #9 麻烦?直接 store 里安装 terminal,PowerShell 下载解压就可以用了。。。然后一行命令安装 psreadline + oh-my-posh 。。。
    不太明白你说的麻烦是哪一点。。。除非是 Windows 版本不够或没有 store 。
    ysn2233
        15
    ysn2233  
       2021-04-08 15:20:34 +08:00
    wsl 有什么不好的呢,也不麻烦
    wangkun025
        16
    wangkun025  
       2021-04-08 15:24:32 +08:00
    没啥好的替代品,真的。
    root01
        17
    root01  
       2021-04-08 15:35:57 +08:00
    @Tumblr 我 ltsc 版本
    root01
        18
    root01  
       2021-04-08 15:36:26 +08:00
    @root01 而且系统本来就自带 powershell
    root01
        19
    root01  
       2021-04-08 15:36:45 +08:00
    @binaryify 我不会搞啊
    Nerv
        20
    Nerv  
       2021-04-08 15:42:41 +08:00   ❤️ 2
    set-psreadlineoption -predictionsource history
    在 powershell 配置文件中加入以上命令即可开启历史补全。
    Nerv
        21
    Nerv  
       2021-04-08 15:44:23 +08:00   ❤️ 1
    madao2015
        22
    madao2015  
       2021-04-08 15:49:47 +08:00   ❤️ 1
    windows terminal + git bash + zsh, https://gist.github.com/fworks/af4c896c9de47d827d4caa6fd7154b6b, 高亮和补全插件都能装
    binaryify
        23
    binaryify  
    OP
       2021-04-08 16:47:01 +08:00
    @ysn2233 #15 wsl 里的我装了,但是有开销,很多项目没必要在 wsl 里面跑,很多时候就想简单跑下
    lepig
        24
    lepig  
       2021-04-08 17:04:48 +08:00
    可能真的就我一个在用 babun !!!
    ysc3839
        25
    ysc3839  
       2021-04-08 17:55:12 +08:00 via Android
    msys2 + zsh 吧
    ClutchBear
        26
    ClutchBear  
       2021-04-08 17:57:29 +08:00
    @madao2015 大神 ,厉害, 我弄好了好久, 就是需要这个.
    zhizunzz
        27
    zhizunzz  
       2021-04-08 18:01:12 +08:00
    babun
    madao2015
        28
    madao2015  
       2021-04-08 18:03:29 +08:00
    @ClutchBear 哈哈,我也是前段时间才找到的,zsh 的补全插件太好用了
    infun
        29
    infun  
       2021-04-08 18:05:46 +08:00 via Android
    @lepig
    @zhizunzz
    你们用的 babun 卡吗?我用着为啥很卡
    msg7086
        30
    msg7086  
       2021-04-08 18:07:51 +08:00 via Android
    为啥要替代?直接 Windows 下用 zsh 不香吗?
    lepig
        31
    lepig  
       2021-04-08 18:26:58 +08:00
    @infun 不卡。 我是 win7 上用的。 就是每次打开的时候得等等。
    bthulu
        32
    bthulu  
       2021-04-08 18:27:29 +08:00
    真的有人用 terminal 吗, 难道你们就只需要连那么几台机器?
    实际工作当中, 哪个不是几十台上百台机器的, 用 terminal 真的记得住哪台是哪台吗
    jhdxr
        33
    jhdxr  
       2021-04-08 18:33:51 +08:00
    @bthulu 谁没事直接连那几十上百台机器。。。要直接连的也就几台。剩下的都有控制台啊
    cjh1095358798
        34
    cjh1095358798  
       2021-04-08 18:36:57 +08:00
    @Tumblr 很 6 哦
    bthulu
        35
    bthulu  
       2021-04-08 18:37:18 +08:00
    @jhdxr 那不还是走控制台嘛, terminal 就为了连那几台机器么, 用的着这么折腾, 随便找个用用就行了
    ScepterZ
        36
    ScepterZ  
       2021-04-08 18:38:17 +08:00
    我是基于 msys2 配置了一下,不过说实话挺麻烦的,也不算特别快(相比 Linux
    jhdxr
        37
    jhdxr  
       2021-04-08 18:38:58 +08:00
    @bthulu 日常开发机啊。。。开发环境还不对自己好一点?
    bthulu
        38
    bthulu  
       2021-04-08 19:12:27 +08:00
    @jhdxr 我一直很奇怪, 到底是什么样得开发需要用原生 shell 而不是用 xshell 这类工具.
    我自己是 Java 后端开发, ssh 连到服务器, 不仅仅是改改脚本, 看看日志, 还要经常性得上传下载 jar 包, 遇到大得日志文件也是下到本地来进行分析. 开发过程中上传下载是比较频繁得, 难道用 shell 上传下载么, 也不是不能用, 就是比较难用. 而且测试+开发环境服务器零零碎碎也有十几台机器要连, 用 shell 那还不得把这些机器名字记下来了? 再说我办公室里几百号开发人员, 除了运维, 我也没见哪个开发不用 xshell 这类工具而用原生 shell 的.
    我真的是特别好奇原生 shell 的强需求场景, 谁能帮我解解惑?
    IgniteWhite
        39
    IgniteWhite  
       2021-04-08 21:19:37 +08:00
    @bthulu 如果从 unix 哲学出发使用类 unix 系统的人,会想要在 win 里使用 terminal 。如果是 GUI 和鼠标使用哲学,xshell 当然更加易用。
    jhdxr
        40
    jhdxr  
       2021-04-08 21:20:54 +08:00
    @bthulu 你喜欢 xshell 没问题啊,我日常 windows terminal+WSL+fish 我觉得也很爽啊。

    java 我也写,但你的这种开发模式坦白说可能是我接近于 10 年前的做法了。现在谁还传 jar 包?不说 docker,maven/gradle 不香吗?大的日志文件我直接在 server 上 less 查找一下一般也就可以了,基于日志的数据统计也都是传输到别的地方汇总处理。为啥还要下载到本地?

    至于机器多,上面也已经说了,整个环境几十台机器每台你都『经常』要上去吗?偶尔上去一次的情况是有的,直接从控制台 copy paste 一下也很快啊。你加一大堆书签难道不也得从里边找出来么?
    IgniteWhite
        41
    IgniteWhite  
       2021-04-08 21:25:03 +08:00
    @bthulu
    @jhdxr
    ssh config 里面是可以加一堆 alias 的。更何况还有好多 CLI 软件来让 ssh alias 的管理变得更加方便。不知道不代表它不存在。
    yazoox
        42
    yazoox  
       2021-04-08 22:00:55 +08:00
    @hellowmykami 我也用!挺好用的,开箱即用,不用瞎折腾
    loveuer
        43
    loveuer  
       2021-04-08 22:01:06 +08:00
    @hellowmykami cmder vim 鼠标普通模式和插入模式不能区分我不知道怎么设置,找了好久没设置好,就放弃了
    IgniteWhite
        44
    IgniteWhite  
       2021-04-08 22:46:20 +08:00
    @loveuer 如果用 cmder 的时候把 bash 作为默认 shell 就可以通过这样:
    https://github.com/g6ai/dotfiles/wiki/inputrc#vi-mode-string
    来设置 vi mode 的光标。如果是 vim 的话也能在同一个 repo 里找到配置和 wiki
    msg7086
        45
    msg7086  
       2021-04-09 06:57:21 +08:00 via Android
    @jhdxr #40 书签不难用啊,树结构分类的,不同公司组织,不同项目,都可以分类整理好,不需要找很久。
    bthulu
        46
    bthulu  
       2021-04-09 08:37:06 +08:00
    @jhdxr 书签不比 copy paste 简单多了? 传 jar 包, 下载日志, 只是我这边的需求, 我打个比方的意思是, 上传下载的需求还是比较多的.
    按你的意思来说, 用 shell 的前提条件就是: 要连的机器不能太多, 不能有较频繁的上传下载需求.
    真能满足这两个条件的, 应该是极少数了吧.
    bthulu
        47
    bthulu  
       2021-04-09 08:39:00 +08:00
    @IgniteWhite 我知道 alias 的存在, 也用过, 真是难用, 不直观不方便, 用倒也能用.
    wsseo
        48
    wsseo  
       2021-04-09 09:56:06 +08:00
    @bthulu 这属于品牌效应,爱屋及乌,很多人都会觉得系统自带的比第三方的好用。
    walpurgis
        49
    walpurgis  
       2021-04-09 11:23:58 +08:00 via Android
    @bthulu 楼主想要本地 zsh,显然不是用来连接服务器,而且 xshell 和 zsh 都不是一类东西,可以共存
    codder
        50
    codder  
       2021-04-09 11:25:23 +08:00
    @hellowmykami 我也用的它
    Chenamy2017
        51
    Chenamy2017  
       2021-04-09 11:32:07 +08:00
    @bthulu 个人习惯而已,有人用 vim,有人用 IDE,不用去试图说服别人,可以建议或者说说你用的,别人会得到有用提示的。
    binaryify
        52
    binaryify  
    OP
       2021-04-09 11:34:58 +08:00
    @walpurgis 上面确实楼歪了
    twor2
        53
    twor2  
       2021-04-09 13:25:13 +08:00
    @bthulu 哪个不是? 我不是
    IgniteWhite
        54
    IgniteWhite  
       2021-04-10 19:39:33 +08:00
    @bthulu sftp 客户端我用 cyberduck 。和用 zsh 写代码是两码事。我说的 ssh 是需要在服务器的 shell 里写代码的时候,如果要 sftp 传文件的话大家都会用专门的软件吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.