很多人知道并使用zsh,是因为oh-my-zsh这款炫酷的配置,尤其是agnoster的配色,太拉风了,第一次看到真的大爱。
然而当我的工作目录下git clone的repo越来越多,我发现cd
, ls
命令,或者新开的terminal,都卡成翔——一卡就是10+s,真的可以开玩笑说“电脑执行命令的速度跟不上我敲命令的速度”。
尝试过的解决办法:
git config --add oh-my-zsh.hide-dirty 1
git config --add oh-my-zsh.hide-status 1
实测还是卡顿
- 修改oh-my-zsh主题
我特意去翻看了oh-my-zsh的源码。说是源码,不过是一堆配置文件,都是shell脚本。我用的josh主题,不过几十行代码,默认的rubbyrussel更简单。其实就是设定几个环境变量。josh里的获取git branch确实会导致慢。
如果我关掉oh-my-zsh中的主题,关掉默认的git插件。那我为啥还要用oh-my-zsh呢?说实话,作为一个小白,真的没有用到过其它插件。
-
删除oh-my-zsh,用zsh提供的默认配置文件,少量修改
我的修改仅限于:添加alias,添加PATH, LD_LIBRARY_PATH等环境变量,添加conda设置。
这里遇到的问题是conda环境的名字不显示,即使我执行了conda init zsh
,并且确保~/.condarc
中没有设定changeps1: False
。
后来发现问题,是默认的zsh配置的一句prompt adam1
导致PS1环境变量被改掉。去掉这句就好了。adam1是zsh自带的主题名字,prompt是zsh内置的函数。
缺点:颜色太素。 -
极速开启zsh
在powerlevel9k的帖子中看到romkatv的评论:https://github.com/Powerlevel9k/powerlevel9k/issues/418,于是顺带找到了romkatv提供的教程:极速开启zsh:
原文有视频,可以去看看。
- zsh + powelevel10k
目前可能最完美的方案:powerlevel:主题漂亮,能显示git branch信息,并且速度超快!
romkatv大神写了一个快速版本的gitstatus,powerlevel10k中集成。使用下来的体验是,即时目录下的git repo的git status没能返回结果,也不会卡顿在切换目录这件事情上,会切换好目录,至于branch信息,等会儿加载好了会自动显示。
- 更多
扔掉手动的拖拉机一样的oh-my-zsh,来看romkatv大神的zsh系列教程吧:https://asciinema.org/~romka
网友评论