oh_my_zsh
是一個非常好用和好看的命令行配置,它包含自動補全
、目錄下git自動檢查
、主題
、插件
等功能,給在命令行下工作的人提供了非常好的便利。
前陣子配置vagrant
虛擬機,為了打個環境給同事使用。考慮到有些命令需要在虛擬機里面完成,所以還是安裝了一個oh_my_zsh
。
但是問題來了,在oh_my_zsh
的默認主題中,當進入一個是git
倉庫的文檔夾時,會自動讀取.git
里面的內容,了解當前的倉庫狀態,比如當前分支。可是在虛擬機里讀取文檔的速度要慢一些,這就會導致每一條命令都會檢查一下當前倉庫狀態的這個行為會使得命令行開始輸入的狀態變的很慢。
一開始我以為是插件
的原因,去掉git
插件,sourse ~/.zshrc
重載配置之后,還是如此,后來發現是主題
的緣故。
我通常是比較懶的,既然默認主題有這個問題,那就找一個別的主題好了。
可是在oh_my_zsh
的github
上的theme
列表中,每個主題都是含有這個功能的,所以只有自己修改主題了。
// 進入用戶主目錄
cd ~
// 進入oh_my_zsh的主題目錄,這里保存着所有可以在其github上的主題庫,我們只要改名字就可以引入對應的主題
cd .oh-my-zsh/themes
// 編輯默認主題文檔
vim robbyrussell.zsh-theme
打開默認主題文檔會發現其實就幾行,像下面這樣
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)"
PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
需要將其修改為
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)"
PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%} % %{$reset_color%}'
# ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
# ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
也就是去掉git部分就好了,其他功能照常使用即可。