既存のOh My ZSHテーマに改行を追加しようとしていますが、何を追加するか、どこに追加または変更する必要があるかわかりません。何か案は?
私は実際に同じ答えを探していました。しかし、私が現在使用している agnoster テーマに改行を追加したかっただけなので、私のニーズはもう少し具体的でした。
私の研究では、すでにそれを行っているフォークされたテーマがたくさんありますが、これは新しい行を追加するだけの過剰な解決策だと思いました。
だから私はagnoster
コードを読んで、_.zshrc
_ファイルのPrompt_end()
関数を上書きするこの簡単なソリューションを考え出しました。
これを行うには、次のコードを_.zshrc
_ファイルに追加します。
_Prompt_end() {
if [[ -n $CURRENT_BG ]]; then
print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
else
print -n "%{%k%}"
fi
print -n "%{%f%}"
CURRENT_BG=''
#Adds the new line and ➜ as the start character.
printf "\n ➜";
}
_
それがあなたがあなたの選んだテーマをどのようにカスタマイズするかについての手がかりを手に入れるのを助けることを願っています。
プロンプトを変更する適切な場所は、テーマ自体にあると思います。私のシステムでは~/.oh=my-zsh/themes/agnoster.zsh-theme
にあります。そこに\n➜
を追加しました:
このセクションを検索:
# End the Prompt, closing any open segments
Prompt_end() {
if [[ -n $CURRENT_BG ]]; then
echo -n " %
{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
else
echo -n "%{%k%}"
fi
echo -n "\n➜%{%f%}"
CURRENT_BG=''
}
これは、他のバージョンと同じように機能する私のバージョンですが、前の行の最後のシンボルを繰り返して、agnosterが提供する正確なプロンプトを模倣します。
Prompt_end() {
if [[ -n $CURRENT_BG ]]; then
echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
else
echo -n "%{%k%}"
fi
echo -n "\n%{%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{%f%}"
CURRENT_BG=''
}
注:ライブラリのソースコードを変更したくない場合は、この関数を~/.zshrc
ファイルの終わり近く。その後、ライブラリが提供する関数で使用されます。