删除 zsh 主题中的新行

Remove new line in zsh theme

我正在尝试修改 zsh 主题 af-magic。我真的很喜欢它,除了一部分。如果每个命令后有破折号,它会使一行充满。

我认为 {(l.COLUMNS..-.)} 部分可以做到这一点。如果我删除整个部分,或 - 使其成为 {(l.COLUMNS...)},它会绘制一个空行。 所以我想摆脱这个空行。我试图在任何地方找到 \n,但是有 none.

这就是主题

# af-magic.zsh-theme
# Repo: https://github.com/andyfleming/oh-my-zsh
# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme

if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"

# primary prompt
PROMPT='$FG[237]${(l.COLUMNS..-.)}%{$reset_color%}
$FG[032]%~/\
$(git_prompt_info)$(hg_prompt_info)\
$FG[105]%(!.#.)%{$reset_color%}'
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'


# color vars
eval my_gray='$FG[237]'
eval my_orange='$FG[214]'

# right prompt
if type "virtualenv_prompt_info" > /dev/null
then
    RPROMPT='$FG[078]$(virtualenv_prompt_info)%{$reset_color%} $my_gray%n@%m%{$reset_color%}%'
else
    RPROMPT='$my_gray%n@%m%{$reset_color%}%'
fi

# git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075]($FG[078]"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"

# hg settings
ZSH_THEME_HG_PROMPT_PREFIX="$FG[075]($FG[078]"
ZSH_THEME_HG_PROMPT_CLEAN=""
ZSH_THEME_HG_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_HG_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"

作为一个单独的问题,这是哪种语言?

只需从提示中删除 COLUMNS 的使用即可。

PROMPT='$FG[237]${(l.COLUMNS..-.)}%{$reset_color%}
$FG[032]%~/\
$(git_prompt_info)$(hg_prompt_info)\
$FG[105]%(!.#.)%{$reset_color%}'

完成后,您还可以删除为现在不存在的行着色的代码,以获得

PROMPT='$FG[032]%~/\
$(git_prompt_info)$(hg_prompt_info)\
$FG[105]%(!.#.)%{$reset_color%}'

顺便说一下,换行符是值中嵌入的换行符(注意原始提示的第一行末尾没有 \)。