powerlevel10k でディレクトリ名やブランチ名を短縮しないで表示するための設定
はじめに
powerlevel10k使っていますか?
エンジニアの皆さんなら、ぼくの考えた最強のターミナルにレイアウトを変更していますよね?
私も例に漏れず、 powerlevel10k
を使ってターミナルの表示をリッチに装飾しています。
ただ、p10k configure
を実行しただけのデフォルトの設定だとディレクトリ名やブランチ名が一定以上の長さになると短縮表示になってしまい、例えばブランチ名を他人に共有する際などにそのままコピペできずに少し面倒でした。
そこで、短縮をしている処理をOFFにする機能がどこかにあるのではないか、と思って調査して設定してみました。
今回は、その方法を紹介しようと思います。
設定
powerlevel10kの設定は ~/.p10k.zsh
に記述してあり、p10k configure
で設定した項目もここに記載されています。
今回は、このファイルを修正することで設定を変更していきます。
ディレクトリ名を短縮しないようにする
ディレクトリを表示している部分の短縮に関わる数値として、ディレクトリ部分の文字長を指定している箇所が以下の POWERLEVEL9K_DIR_MAX_LENGTH
です。
# Shorten directory if it's longer than this even if there is space for it. The value can # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, # directory will be shortened only when prompt doesn't fit or when other parameters demand it # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). # If set to `0`, directory will always be shortened to its minimum length. typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
コメントに記載がある通り、何文字まで短縮せずに表示するか、の値を
- 文字列の長さを数値で指定
- ターミナルウインドウの幅に対する比率を%で指定
の2種類の方法で設定することができます。
また、それとは別にもう一つ、空を設定することができるようです。
空を設定した場合は「他の表示項目の表示も含めて表示幅が足りなくなったときのみ短縮する」という設定になります。
今回は空を設定することにします。 設定は以下のように変更します。
# Shorten directory if it's longer than this even if there is space for it. The value can # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, # directory will be shortened only when prompt doesn't fit or when other parameters demand it # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). # If set to `0`, directory will always be shortened to its minimum length. - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 + typeset -g POWERLEVEL9K_DIR_MAX_LENGTH= # default is 80
ブランチ名を短縮しないようにする
ブランチ名の短縮に関連する処理は、以下の部分です。
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then local branch=${(V)VCS_STATUS_LOCAL_BRANCH} # If local branch name is at most 32 characters long, show it in full. # Otherwise show the first 12 … the last 12. # Tip: To always show local branch name in full without truncation, delete the next line. (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" fi
コメントがとても親切で『ローカルブランチを短縮せずに常に全て表示したい場合、次の行を削除してください。 <- 次の行はこちら』と書かれています。
コメントの通り、設定は以下のように変更します。
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then local branch=${(V)VCS_STATUS_LOCAL_BRANCH} # If local branch name is at most 32 characters long, show it in full. # Otherwise show the first 12 … the last 12. # Tip: To always show local branch name in full without truncation, delete the next line. - (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line + # (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" fi
反映させる
ここまで完了したら、ターミナルを再起動してこのファイルを適用しましょう。
あるいは、以下のコマンドで変更を現在開いているターミナルに適用することもできます。
$ source ~/.p10k.zsh
表示を確認してみる
長いディレクトリに移動しても、表示範囲が許されるかぎりそのまま表示されています。
次に、同じディレクトリのままとても長い名前をつけたブランチを切ってどう変化するかを確認してみます。
ブランチ名は省略されずに全て表示されていて、ディレクトリ名が省略されていますね。
ちなみに、ターミナルのウインドウ幅を広げてあげると、ディレクトリ名も全て表示されるようになります。
いい感じですね!
まとめ
今回は powerlevel10k でディレクトリパスとブランチ名をいい感じに短縮しないで表示する設定方法を紹介してみました。
初めて ~/.p10k.zsh
の中身を見たのですが、今回修正した項目以外にもたくさんの細かい設定をカスタマイズできることがわかったので、暇を見てどんな設定ができるのか確認してみたいなと思います。