如何在 WSL 上使用带有纯 Z shell 的 zsh-theme 文件

如何在 WSL 上使用带有纯 Z shell 的 zsh-theme 文件

我使用 WSL(旧版(默认),实际上是 Ubuntu 16.04),并使用 Z shell(没有框架或插件管理器)作为终端中的 shell。我当前的主题是几何学其中包含一个.zsh文件及其.zsh-theme.我在我的文件中这样使用它.zshrc

# Geometry Theme
# from https://github.com/geometry-zsh/geometry
if [[ ! -a $HOME/.zsh-plugins/geometry/geometry.zsh ]] then
    git clone https://github.com/geometry-zsh/geometry $HOME/.zsh-plugins/geometry
fi

source ~/.zsh-plugins/geometry/geometry.zsh

我用了一段时间了,想换一下。我选择尝试的新主题(例如极客,asciigit等),与我当前的主题不同,只有一个.zsh-theme文件。我按照以下说明进行操作这里,但对于我尝试的每个主题,我都会遇到以下错误:

/path/to/zsh/theme.zsh-theme:8: parse error near `\n'

比如我放了iGeek的前10行:

# igeek zsh-theme

# System load
g_load=`top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk 5 '{printf "☉ System load : %.1f%", 100-$1 }'`

# Memory Usage
g_memory=`free -m | awk 'NR==2{printf "☉ Memory Usage: %.2f%", $3*100/$2 }'`

# Disk Usage
g_disk=`df -h | awk '$NF=="/"{printf "☉ Disk Usage: %.1f%", $5}'`

和asciigit:

setopt prompt_subst

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE=''
ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE='<'
ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE='>'
ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg[red]%}<>%{%F{14}%}"
ZSH_THEME_GIT_PROMPT_UNTRACKED='%%'
ZSH_THEME_GIT_PROMPT_ADDED='+'

值得注意的是,我已经.zsh-theme使用 WSL 终端的命令下载了文件curl,并且没有对它们进行任何更改。例如:

curl https://github.com/cemsbr/asciigit/blob/master/asciigit.zsh-theme --create-dirs -o ~/.zsh-plugins/asciigit/asciigit.zsh-theme

奇怪的是,据我尝试,它只在第 8 行出错,尽管不同文件中的第 8 行有不同的内容。

有没有什么方法可以使用此类主题而不需要使用插件管理器?

答案1

感谢 @kemotep 给我的提示,我找到了问题的原因。

我在curl 命令中使用了错误的链接(GitHub 文件查看器页面的链接)。相反,我应该使用原始文件的链接。例如:

curl https://raw.githubusercontent.com/cemsbr/asciigit/master/asciigit.zsh-theme --create-dirs -o ~/.zsh-plugins/asciigit/asciigit.zsh-theme

然后添加source ~/.zsh-plugins/asciigit/asciigit.zsh-theme~/.zshrc文件并执行source ~/.zshrc将应用主题。

相关内容