以下は私の.zshrc
ファイルです:
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '(%b)'
setopt PROMPT_SUBST
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f > '
私は細かいことにこだわり、1 つの問題を修正しようとしていますが、その方法がわかりません。Git リポジトリにいる場合は、次のプロンプトが表示されます。
git-repo-123 (branch-323232) >
しかし、git リポジトリにいない場合は、次のプロンプトが表示されます。
some-non-git-repo-dir >
ご覧のとおり、 git リポジトリにいないときにsome-non-git-repo-dir
、 と の間に 2 つのスペースがあります>
。これを修正するにはどうすればいいでしょうか? これは非常に些細な問題だとはわかっていますが、解決策を見つけるために Google に何と入力すればよいかわかりません。私は zsh をあまり使い慣れていないので、シェルを好みに合わせて構成しようとしています。回答してくださる皆様、前もって感謝いたします。
答え1
文字列を調べるとPROMPT
、5 つのブロックで構成されていることがわかります。
- 青色は現在のディレクトリ
- 空間
- 赤はgitブランチ
- 空間
- プロンプトインジケータ(
>
)
したがって、git リポジトリ内にいない場合は、3 番目のブロックは空になり、隣接する 2 つの空白 (ブロック 2 と 4) が残ります。
必要なのは、Git リポジトリ内にいる場合のみ、ブロック 4 の空白です。これを実現するには、たとえば次のように、空白をスタイルに入れてvcs_info
、 から省略します。PROMPT
zstyle ':vcs_info:git:*' formats '(%b) '
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f> '