oh-my-zshを使うのやめた
使っていた理由
とりあえずoh-my-zshを入れておけばzshがいい感じに動いてくれるし、面倒そうな設定もしなくて済むし便利、くらいの気持ちで使っていた。
不満
それほど大きな不満ではないけど、以下の2つが小さなストレスだった。
- シェルの起動が遅い
- ブラックボックス感
シェルの起動が遅いのは一概にoh-my-zshだけのせいとは言えず、プラグインの影響もあると思うのだけど、体感的に遅いと感じるレベルだった。
ブラックボックス感というのは、zshに対してどういう設定がされているかわからん、ということ。最初は「とりあえず使う」「便利」とか言ってても、だんだんと自分が明示的に設定したものだけが動いてる状態にしたくなってしまう。
どうやってやめたか
一度.zshrc
をまっさらにしてから必要な設定を順番に書いていっただけ。もともと多くを必要とはしていなかったので、それほど大変ではなかった。なーんだ。気をつけた点としてはコードを書くときと同じで、理解してないことは書かないということ。意味がわからないときは調べてから書くようにした。
調べる方法としてはググったり、以下のサイトを見た。
あと、これは時間が経ったらどうやって設定したか忘れるな、というのだけ書いておく。
prompt
これはgitのブランチ名を出したいという要求がある。どうやろうかと調べたところhomebrewでgitを入れると/usr/local/etc/bash_completion.d/git-prompt.sh
というファイルができることがわかったのでこれを使った。使い方もこのファイルに書いてあるけど、__git_ps1
という関数の引数の取り方が2パターンあって理解するのに少し苦労した。
ちなみにgit-prompt.sh
はgithub上だとここにある。
git/git-prompt.sh at master · git/git
以下のcompletionでもお世話になるけど、git/contribの存在を初めて知った。
completion
これもあまり要求はないんだけどgitのブランチ名は補完してほしい。あと小文字を入力した時に大文字のファイルも補完してほしい。
ところでbrew info
すると最後にCaveatsが表示されることがあって、ここに大事なことが書いてあることが多い。gitだと以下のように出てて、zsh completionのことも書いてあるので、これを使う。
$ brew info git (snip) ==> Caveats Bash completion has been installed to: /usr/local/etc/bash_completion.d zsh completions and functions have been installed to: /usr/local/share/zsh/site-functions Emacs Lisp files have been installed to: /usr/local/share/emacs/site-lisp/git
/usr/local/share/zsh/site-functions/_git
というファイルがあるので中身を見ると設定方法が書いてあるのでその通りにやった。ちなみにこの_git
というファイルはgithub上だとgit-completion.zsh
という名前になっていて以下の場所にある。
git/git-completion.zsh at master · git/git
history
これはoh-my-zshのhistory設定から一部をパクってきて少し調整した。53万というのをやりたくなったけど、真似するの恥ずかしくなってやめた。
oh-my-zsh/history.zsh at master · robbyrussell/oph-my-zsh
まとめ
最近だと fish shell というのを使う人も多いので、乗り換えようか?とも考えたけどzshに不満はないし、やめておいた。
しばらくこのまま.zshrc
を育てながらやっていこうと思います。
ちなみにoh-my-zshにさよならした時のプルリクはこれでした。
Bye oh my zsh by takatoshiono · Pull Request #19 · takatoshiono/dotfiles
それではまた。