zshのプロンプト の色を256色で指定する

はじめに

ネットで調べて上位にヒットした方法で色変更できなかったので、macOSで変更する方法をまとめておく
あと備忘録のため、他に入れた便利設定も残しておく

目次

  • 動作テスト環境
  • プロンプトの色変更方法
  • その他補完機能など

動作テスト環境

  • macOS Catalina Version 10.15 Beta

プロンプトの色変更方法

正しい設定

f:id:yuki9431:20191012221229p:plain /etc/zshのPS1を以下のように変更すると上の画像みたいにできる

#PS1="%n@%m %1~ %# "
PS1='%F{196}%n%f:%F{159}%c%f%# '

設定値を軽く説明
%F{256色}hoge%f このように囲むことでhogeの色を指定できる
何色が何番に対応するかは、リンク先のワンライナーで表示できるので参考に
zsh で全 256 色を試しに表示みたい

%nはユーザ名、%cカレントディレクトリを意味する
他にも時間表示やhostnameを表示できる
他のパラメータはマニュアル参照してくさい
The Z Shell Manual

PS1変更してプロファイル再読み込みして確認するのは効率悪いので、私は以下のコマンドで設定を確認した

print -P '%F{196}%n%f:%F{159}%c%f%# ' # 表示確認
macbook_pro:~%  # 表示確認

誤った設定

最初以下のように設定していて、改行位置がおかしなことになった
Linuxだと上手くいくのかね? Linuxは未検証ですが、私のmacOSではこの設定は使えなかった

PS1=$'\e[38;5;196m%n\e[0m:\e[38;5;159m%c\e[0m%# '

その他補完機能など

下記の2行を/etc/zshに追記すると補完機能を強化できる
"ls -" tabキーでオプションを順に選択し、ヘルプも表示できる
万年bash使いだったので、これは便利すぎて涙出た
f:id:yuki9431:20191012221440p:plain

autoload -U compinit
compinit



tab押下時に選択中の項目を塗りつぶす f:id:yuki9431:20191012221354p:plain

zstyle ':completion:*' menu select



コマンド入力ミスの際の類似コマンドの提案

setopt correct



重複コマンドをhistoryに残さない

setopt HIST_IGNORE_DUPS

おわりに

alias等の設定はbashから流用してるので、よければ併せて参考にどうぞ
- macOSの設定ファイルをカスタムして、あなたのCLIライフを幸せに

参考サイト