我正在尝试为我现有的Oh My ZSH主题添加换行符,但无法确定要添加的内容或应添加/更改的位置.有任何想法吗?
gvs*_*ins 40
我其实是在寻找相同的答案.但我的需求更加具体,因为我只想在agnoster主题中添加一个换行符,我现在正在使用它.
在我的研究中,我发现很多分叉的主题已经做到了,但我认为这只是一个过度的解决方案,只能添加一个新行.
所以我阅读了agnoster代码并提出了这个覆盖prompt_end()我.zshrc文件中的函数的简单解决方案.
要做到这一点,只需在.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 ?";
}
Run Code Online (Sandbox Code Playgroud)
希望它能帮助您了解如何自定义您选择的主题.
小智 5
我认为改变提示的正确位置是在主题本身。在我的系统上,它在~/.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=''
}
Run Code Online (Sandbox Code Playgroud)
这是我的版本,它的工作原理与其他版本一样,但重复上一行的最后一个符号,以便它模仿 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=''
}
Run Code Online (Sandbox Code Playgroud)
注意:如果您不想修改库的源代码,您也可以将此函数放在~/.zshrc接近末尾的文件中。然后它将在库提供的函数上使用。