0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

macOSのzshプロンプトをカスタマイズ

Posted at

gitブランチ情報とペーストモードを何とかしたかったので、そこだけ設定しました。
precmd()で色々やるとかなり動作がもっさりしてしまう。やりすぎ注意。

カスタム内容

.zshrc
# 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'

見た目はこんな感じになりました。(VSCode)
image.png

paste mode

zshのデフォルトのペーストモードは「Bracketed Paste Mode」というものらしく、複数コマンドをコピペしても即実行されない仕様となっています。

・コピペしたコマンドは即実行されず・・・
image.png
・Enter 入力で実行(3回分)
image.png
嫌い!!笑

ということで、unset zle_bracketed_pasteで設定OFFにすると求めていた動きになります。
image.png

git info

ほぼコピペですが、何やっているかある程度理解しておかないと応用効かないなので少し調べました。

autoload: シェル関数の読込。つまりvcs_infocompinitはシェル関数。
-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を追加しています。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?