gitブランチ情報とペーストモードを何とかしたかったので、そこだけ設定しました。
precmd()
で色々やるとかなり動作がもっさりしてしまう。やりすぎ注意。
カスタム内容
# env
# PATHとか
# paste mode
unset zle_bracketed_paste
# git info
autoload -Uz vcs_info compinit && compinit
setopt prompt_subst
zstyle ':vcs_info:*' formats ' (%b)'
precmd() { vcs_info }
# prompt
PROMPT='%F{025}%B%~%b%f%F{008}$vcs_info_msg_0_%f %F{008}%#%f '
RPROMPT='%F{008}%D{%H:%M:%S}%f'
paste mode
zshのデフォルトのペーストモードは「Bracketed Paste Mode」というものらしく、複数コマンドをコピペしても即実行されない仕様となっています。
・コピペしたコマンドは即実行されず・・・
・Enter 入力で実行(3回分)
嫌い!!笑
ということで、unset zle_bracketed_paste
で設定OFFにすると求めていた動きになります。
git info
ほぼコピペですが、何やっているかある程度理解しておかないと応用効かないなので少し調べました。
・autoload
: シェル関数の読込。つまりvcs_info
とcompinit
はシェル関数。
・-U
: シェル関数内の alias がユーザ定義の alias で上書きされる可能性があり、それを防いでくれる。
・-z
: zsh 形式での読込指定。
・setopt prompt_subst
: PROMPT変数内で変数展開が可能。今回だと$vcs_info_msg_0_
が該当。
・zstyle
: git情報が入る変数$vcs_info_msg_0_
の format を指定。%b
で current branch を表示できる。
・precmd()
: プロンプト表示のたびに実行する関数。vcs_info
を実行することでgitの最新情報を常に取得。
prompt
こちらもほぼコピペ。
彩度低めの色が好きでして、色は256色で指定しました。
何となく時刻出ていた方が便利かと思い、RPROMPT
を追加しています。
参考
- https://qiita.com/kumatira/items/41562f1d9001927e9888
- https://medium.com/@rukurx/zsh%E3%81%AEcompinit%E3%81%AB%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%8Bautoload%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3-uz-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-ad471efd84c3
- https://apple.stackexchange.com/questions/334247/bracketed-paste-mode-in-terminal-app