添加换行符给Oh My ZSH主题

时间:2016-12-07 12:47:45

标签: zsh oh-my-zsh

我尝试在现有的Oh My ZSH主题中添加换行符,但无法确定要添加的内容或应添加/更改的位置。有什么想法吗?

3 个答案:

答案 0 :(得分:26)

我实际上是在寻找相同的答案。但我的需求更加具体,因为我只想在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 ➜";
}

希望它可以帮助您了解如何自定义所选主题。

答案 1 :(得分:4)

这是我的版本,其工作方式与其他版本相同,但是重复了上一行的最后一个符号,以便模仿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文件中。然后,它将在库提供的函数上使用。

enter image description here

答案 2 :(得分:1)

我认为更改提示的适当位置是主题本身。在我的系统上,它位于~/.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=''
}