向 Oh My ZSH 主题添加换行符
Add newline to Oh My ZSH Theme
我正在尝试向我现有的 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
文件的末尾附近。然后它将用于库提供的函数。
这个怎么样
NEWLINE=$'\n'
PROMPT='%n ${NEWLINE} $ '
我正在尝试向我现有的 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
文件的末尾附近。然后它将用于库提供的函数。
这个怎么样
NEWLINE=$'\n'
PROMPT='%n ${NEWLINE} $ '