ZinitとStarshipでプロンプトをカスタマイズする
はじめに
zshのプラグインマネージャを使用して、プロンプトをカスタマイズします
類似のものとして↓などがあります
ターミナルはiTerm2を使います
brew install iterm2
Zinit
READMEを参考にインストールします
bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
インストールしたらシェルを読み直して初期化します
source ~/.zshrc
zinit self-update
プロンプト(テーマ)
powerlevel10k, pure, starshipのサンプルがありますが、
今回はstarshipを使用します
~/.zshrc
を編集し、以下を追加します
# Load starship theme
# line 1: `starship` binary as command, from github release
# line 2: starship setup at clone(create init.zsh, completion)
# line 3: pull behavior same as clone, source init.zsh
zinit ice as"command" from"gh-r" \
atclone"./starship init zsh > init.zsh; ./starship completions zsh > _starship" \
atpull"%atclone" src"init.zsh"
zinit light starship/starship
シェルの設定を読み直すと有効化されます
source ~/.zshrc
フォントインストール
starshipで必要なフォントをインストールします
brew tap homebrew/cask-fonts
brew install --cask font-fira-code-nerd-font
iTemの設定からフォントを変更しておきます
iTerm2 -> Preferences -> Profiles -> Text -> Font
で FireCore Nerd Font を選択
Starshipの設定方法
プリセットを使う
以下から好きなものを選びます
リンク先の一覧から(画像クリックで)設定方法がみれます
Gruvbox Rainbowを使う場合の例です
↓実行すると設定ファイルが作成され見た目が変更されます
starship preset gruvbox-rainbow -o ~/.config/starship.toml
自分で設定する場合
以下に詳しく書いてあります
Executing command "..." timed out.
という警告が出る場合
↓ここに書いてありますが、プロンプトを表示するためのプログラム実行にタイムアウト設定があります
以下のコマンドでモジュールの説明やパフォーマンスを調べることもできます
starship explain
設定ファイルにcommand_timeout
を指定して(デフォルトは500ms)変更できますが、
言語のバージョン表示が遅いので設定を変更
format = """
[](color_orange)\
$os\
$username\
[](bg:color_yellow fg:color_orange)\
$directory\
[](fg:color_yellow bg:color_aqua)\
$git_branch\
$git_status\
[](fg:color_aqua bg:color_bg3)\
$docker_context\
[](fg:color_bg3 bg:color_bg1)\
$time\
[ ](fg:color_bg1)\
$line_break$character"""
※バージョン管理にasdfを使っていると遅いようなので、Rust実装のmise(旧rtx)に代替する方法もあります
→Rosettaでハマることがあるようなので試していません
→x86_64版のmiseを使う必要があります
Zshのプラグインを使う
~/.zshrcを編集し、以下を追加します
# Ctrl-R でコマンド履歴検索
zinit light zdharma-continuum/history-search-multi-word
# コマンド補完
zinit light zsh-users/zsh-autosuggestions
# シンタックスハイライト
zinit light zdharma-continuum/fast-syntax-highlighting
こちらもシェルの設定を読み直すと有効化されます
source ~/.zshrc
Discussion