在参照如何将这些不常见选项的 zplug 代码转换或翻译成 zinit 语言?,我正在从 zplug/zinit 迁移到我感兴趣的 znap。
我正在读znap
文档,但我观察到 和zinit
是znap
完全不同的。
我观察到该选项pick
不存在znap
:
zinit light "mafredri/zsh-async" pick "async.zsh"
我想知道我是否会这样写:
znap source mafredri/zsh-async
znap eval zsh-async 'curl -fsSL https://github.com/mafredri/zsh-async/async.zsh'
还要观察zplug
语言,使用defer
:
zplug "zdharma/fast-syntax-highlighting", defer:2
我还需要将其中一个插件推迟到另一个插件之前,但我不知道它在znap
.我正在考虑在第二个之前采购第一个,但不确定这是否正确。
想要使用条件检查命令会很有趣,但我还需要检查操作系统类型,例如:
zinit wait lucid for \
OMZ::plugins/common-aliases \
OMZ::plugins/copydir \
OMZ::plugins/cp \
OMZ::plugins/encode64 \
OMZ::plugins/extract \
OMZ::plugins/git \
if"[[ $+commands[go] ]]" OMZ::plugins/golang \
if"[[ $+commands[npm] ]]" OMZ::plugins/npm \
if"[[ $+commands[sudo] ]]" OMZ::plugins/sudo \
if"[[ $+commands[systemd] ]]" OMZ::plugins/systemd \
OMZ::plugins/urltools \
pick "zshrc" tcnksm/docker-alias
我可以从 切换~/.local/share/znap
到 吗~/.config/zsh
?
答案1
这应该可以解决问题:
znap prompt # This is how you "defer".
() {
local -a plugins=(
common-aliases copydir cp encode64 extract urltools
${commands[go]:+golang}
${commands[npm]:+npm}
${commands[sudo]:+sudo}
${commands[systemd]:+systemd}
)
znap source ohmyzsh/ohmyzsh plugins/$^plugins
}
znap source tcnksm/docker-alias zshrc # This is how you "pick".
znap source mafredri/zsh-async
znap source zdharma-continuum/fast-syntax-highlighting
顺便说一句,我会推荐不是使用mafredri/zsh-async
。 Zsh 有用于执行异步操作的内置功能。你不需要一个插件。