V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CodeY99
V2EX  ›  问与答

ohmyzsh 和 nvm 仍然是必选项吗?

  •  
  •   CodeY99 · 1 天前 · 1268 次点击

    在 2015 年,2016 年,搜索 setup mac 经常是 iTerm2 + omz + nvm 之类的。但是现在 10 年过去了想确认一下仍然建议这么配置吗?

    • omz 我这里实际就只配置了(git, zsh-autosuggestions, zsh-syntax-highlighting)。而且按理来说 zsh-autosuggestions, zsh-syntax-highlighting 也不需要 omz 管理,直接按照即可。目前来看刚需就是 git 插件
    • nvm , 到现在阶段 Node 是不是兼容性好了很多。是不是只要不维护特别老的项目,不追新的 Nodejs ,装一个比较新的 LTS 就够用了,nvm 或者 fnm 是不是完全没必要?
    • 另外目前 vscode fork 版本似乎已经逐渐作为主流。其中按 `ctr+`` 很容易呼出终端,大家日常还是会更多使用 iTerm2 或者 WezTerm 这种独立终端吗?

    如果删掉 omz 有什么办法独立使用其 git 插件吗?或者有更好的 git alias 方案选择吗?一些 gca, gstp, gpsup 还挺常用的。

    这么想主要还是有时候打开终端得等几秒(安装了 p10k),我已经使用 Codex 优化了大部分懒加载和重复配置项,omz 也禁止自动更新了。但是好像刚刚突然在启动一个新终端的时候又卡了几秒。后面打开也都是秒开,就很奇怪。

    21 条回复    2025-09-21 17:28:37 +08:00
    wu67
        1
    wu67  
       1 天前 via Android
    nvm 没必要了,自己写自定义命令切环境变量就行了
    iorilu
        2
    iorilu  
       1 天前   ❤️ 1
    nvm 是没必要

    不过可以试试 mise, 这个可以管理各种开发环境, python, node, go 等等, 一个工具全搞定, 我认为还是有用的
    stinkytofux
        3
    stinkytofux  
       1 天前
    nvm 管理 node 我用的挺多的.
    omz 不用了, 我用 fish , 开箱即用, 好用省心.
    Binwalker
        4
    Binwalker  
       1 天前
    starship+fish 替换各种 shell+主题,mise 替换各种版本管理器
    Atma
        5
    Atma  
       1 天前
    我换 ASDF 了
    Rache1
        6
    Rache1  
       1 天前
    推荐 fnm 代替 nvm ,

    zsh 目前还在用,不过它的那个 z 插件挺不错,或者 autojump ,不过现在也有一个替代品 zoxide ,就是使用习惯有一点点差异。

    zsh 的那个 git alias 还挺不错的,不过也有不同的替代品了,Windows 上有
    https://github.com/gluons/powershell-git-aliases
    cunoe
        7
    cunoe  
       1 天前 via Android
    还真是😂
    gudecatch
        8
    gudecatch  
       1 天前
    fish + asdf
    Madrid
        9
    Madrid  
       1 天前
    fish mise 🎉
    Immortal
        10
    Immortal  
       1 天前   ❤️ 1
    作为终端重度用户,这题我还真投入时间研究过.可以参考我的 dotfile:
    https://github.com/0x7a7a/dotfiles/blob/main/zsh/zim/.zimrc

    还有 pk10 作者对不同 zsh 管理工具的性能评测:
    https://github.com/romkatv/zsh-bench

    zim 一类的 zsh 插件管理可以单独提取 omz 里的 git 使用.
    nvm 会严重影响终端 prompt 的速度,替换方案就是上面说的 fnm/volta/mise
    更究极一些的版本管理可以使用 nix/nix-direnv 一类的方案,不过门槛较高,更适合爱"折腾"的人
    KMpAn8Obw1QhPoEP
        11
    KMpAn8Obw1QhPoEP  
       1 天前 via Android
    @iorilu 我还是分着来的 node 用 nvm Python 用 uv Go 用 mise 哈哈哈
    KMpAn8Obw1QhPoEP
        12
    KMpAn8Obw1QhPoEP  
       1 天前 via Android
    @Immortal 为什么说 nvm 严重影响速度呢 我感觉还好
    Immortal
        13
    Immortal  
       1 天前   ❤️ 1
    @KMpAn8Obw1QhPoEP #12
    nvm 是纯 shell 实现,相当于每次打开终端会自动载入整个 nvm.而不是像 fnm 那些二进制程序一样用的时候才打开.
    如果你"感觉还好",可能是:
    1. 你的电脑性能挺不错
    2. 你不在意这个
    3. 没有对比过"真正的快"

    一般来说体感上没有明显感受到慢就不用太在意,自己用的顺手就行.
    itechify
        14
    itechify  
    PRO
       1 天前
    最开始接触服务器那会喜欢在自己主机上面折腾,后来在公司生产环境,都是纯 bash ,再后来自己经常换服务器,不想折腾了
    KMpAn8Obw1QhPoEP
        15
    KMpAn8Obw1QhPoEP  
       1 天前 via Android
    @Immortal 很有道理
    rick13
        16
    rick13  
       23 小时 35 分钟前
    nvm 非常影响性能,每次打开都需要加载运行一遍脚本,推荐使用 fnm 。omz 性能也挺差的,我是把需要的挑出来了。
    ETiV
        17
    ETiV  
       21 小时 27 分钟前 via iPhone
    nvm 安装完,直接把 ~/.nvm/versions/xxx/bin 加进 PATH 里就可以注释掉 source nvm 的那两行了
    需要更新 node 的时候再 uncomment 回来
    KMpAn8Obw1QhPoEP
        18
    KMpAn8Obw1QhPoEP  
       19 小时 18 分钟前 via Android
    @ETiV 那也太麻烦了 还不如换其他工具了
    the1812
        19
    the1812  
       19 小时 17 分钟前
    git 只在 GUI 里用,nvm 性能太差,用 fnm 替代,这样终端都是秒开
    v2AKS
        20
    v2AKS  
       17 小时 42 分钟前
    用的 pnpm ,可以用 pnpm env 切换 Node.js 版本
    CodeY99
        21
    CodeY99  
    OP
       14 小时 16 分钟前
    感谢各位大哥回复,目前已经换成 node24 + zim + starship 了。
    - 好久没切换过 node 版本了。所以先暂时移除 node 版本管理器,直接装了 node 版本。需要的时候再说。
    - omz 换成 zim 。git 的插件用惯了,所以可能还离不开 omz 生态
    - p10k 换成 starship ,之前新开 Terminal 好像会闪一下,不确定是不是 p10k instant prompt 造成的。
    - 装了 wezterm 但试了一下没什么感觉,还是用 iTerm2
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:45 · PVG 07:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.