oh-my-zshで一時的にプロンプトのGitのステータスを非表示にする

oh-my-zshを使うと、シェルのプロンプト部分にカレントディレクトリのGitレポジトリのブランチ名や変更があるかなどのステータスを表示することができます。
これは非常に便利な機能なのですが、ディスクアクセスに時間がかかる場合(sshfsなど)に反応が遅くなってしまいます。
(.git以下を見にいくため)
一時的にプロンプトのGitのステータスを非表示にできるようにしました。

テーマを作る

oh-my-zshには豊富なテーマがあります。
このテーマのなかにプロンプトの設定も書かれているので、Gitなしテーマを作ります。

$ cd ~/.oh-my-zsh/themes/
$ cp robbyrussell.zsh-theme robbyrussell-nogit.zsh-theme 

コピーしたrobbyrussell-nogitテーマを編集します。diffは以下。

$ diff robbyrussell.zsh-theme robbyrussell-nogit.zsh-theme
1c1
< PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
---
> PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%}'
3,6d2
< 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]%})"

つまり、ZSH_THEME_GIT_PROMPT_*の行と、PROMPT変数の $(git_prompt_info) を削除します。

これで新しいテーマが出来ました。

一時的にテーマを変更する

テーマ名の環境変数を変更した後、oh-my-zsh.shを再読み込みします。

$ ZSH_THEME="robbyrussell-nogit"; source $ZSH/oh-my-zsh.sh

~/.oh-my-zsh/custom/nogit.zshに以下のように書いておけば、

alias nogit="ZSH_THEME="robbyrussell-nogit";source $ZSH/oh-my-zsh.sh"
alias nogitoff="ZSH_THEME="robbyrussell";source $ZSH/oh-my-zsh.sh"
$ nogit
$ nogitoff

で切り替えられます。