macOS 中有 Oh My Zsh 的上位替代么?

54 天前
 bigbugbag

新购入了一台 Mac ,准备不迁移环境而是从头配置一下环境,现在准备安装 shell 插件了。

之前一直用着 Oh My Zsh ,确实很好用,但是感觉初始化时间越来越长,一个新的 session 要 1 ~ 2 秒才初始化完成,可能是插件有点多了,而且看有人说 Oh My Zsh 的性能差点意思。

问下各位现在有 Oh My Zsh 的上位替代么?可以从使用体验、易用度、生态、性能之类的方面讲讲。

13391 次点击
所在节点    程序员
124 条回复
Aixtuz
54 天前
目前用的 zinit ,然后用:zinit snippet OMZ::lib/history.zsh 这种格式去挑自己需要的 omz 插件。
然后用 zsh-defer 和 zinit light-mode 加载其他插件。
其他可以延后加载的东西仍在 async_init() {} 里,同样交给 zsh-defer 加载。
kneep
54 天前
从 OMZ 到 Starship ,到什么都不用 T_T
polarHEX
54 天前
@Azone 巧了我也是这个
Immortal
54 天前
@Immortal #57
再补充一下吧,我也算折腾比较久的.(配合我上面的 dotfiles 食用)

对于说 zinit"很快"其实有歧义的,p10k 的作者对于 shell 的速度有一个具体的测试和解释:
https://github.com/romkatv/zsh-bench

一般来说 zsh 搭配 p10k+zinit/zim 都可以达到不错的启动速度
如果想要变得"好用",除了常见的补全/高亮以外,我推荐搭配使用
- z.lua 和 fz.sh,目录快速跳转
- zsh-vi-mode,在 zsh 中使用 vim 模式快速修改
- fzf-tab,用 fzf 的方式提高 tab 补全使用体验
hslx111
54 天前
Wrap
xiaozhu317
54 天前
hackerwilson
54 天前
oh-my-bash 也可以了。
dinghmcn
54 天前
zinit 加载速度快;兼容 ohmyzsh 的插件;

https://github.com/zdharma-continuum/zinit
bruce0
54 天前
感谢老哥们推荐的 Starship, 在 windows 的 powershell 中替换了原来使用的 oh-my-posh, 现在启动速度快多了, 以前经常启动卡 1-2 秒, 现在基本秒开
yiqiao
54 天前
@hslx111 #65 我也是!哈哈哈,内测一直用到现在
yb2313
54 天前
nushell+starship ,非常好用,无敌
Lockeysama
54 天前
“一个新的 session 要 1 ~ 2 秒才初始化完成”

这个问题我熟,大概率是因为某个配置加载时间的问题,我之前是初始化的时候加了个自动 AWS 命令的授权的配置,后面去了就不会了,秒开


正常的插件基本不会要太多时间,慢的大概率跟网络有关
littlewing
54 天前
咋那么多用 fish 的,能说一下哪里好用吗
james122333
54 天前
自己写
bash 写好都不慢何况 zsh...
脚本效能比较 zsh > fish > bash
zsh 本身并没有肉眼可见的慢
只是 fish 有内置用 c 写的功能罢了
会写用 bash 都可
bash 还是挺强的
不要用 oh my XXX 的东西
没有一个精品
plugin 思想也不好 扩充差东西难以復用
james122333
54 天前
多数脚本 大概 99.999%的写出来的是意大利麵条
会采用低效写法 if else 判断也满天飞 一个脚本好几百行 机制运作与效能都不好
RicardoY
54 天前
fish 的语法和 zsh 不一样,这个需要注意下
blackcellcode
54 天前
https://www.warp.dev/ 可以试试这个 我用的
zthxxx
54 天前
要关注性能就要像 #31 楼说的那样去查

自己写的 zsh 主题,写的时候就考虑到了性能,消除了所有能消除的进程间调用,git status 查询也是异步的
做到 4ms per render

https://github.com/zthxxx/jovial
zthxxx
54 天前
Fish 语法差异太大哦,如果自己平时还经常写一些 CI 脚本、维护一些服务器、Homelab 之类的,来回切换语法上思考起来挺麻烦的

想象一下你每天在 Windows / macOS 、VSCode / JetBrains 家的 IDEA 之间来回切换快捷键
lanbos
54 天前
在好几台设备来回切,mac 用 zsh ,开发服务器 ssh 上去用 fish ,win server 用 nushell (有小 bug )。。。目前没有啥好方案,感觉 nushell 性能最好。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX