如何删除Z shell precmd函数?

Eya*_*vin 4 ubuntu zsh

我的Z shell precmd功能列表中有一些功能。

我可以看到他们

echo $precmd_functions
Run Code Online (Sandbox Code Playgroud)

在此列表中,我可以看到一个名为 _ntfy_precmd

如何将其从功能列表中删除?

(此功能是在安装https://github.com/dschep/ntfy之后添加的)

Ada*_*hon 5

就像添加功能一样,precmd您有两种选择:

  1. 直接操作precmd_functions数组:

    precmd_functions=(${precmd_functions:#_ntfy_precmd})
    
    Run Code Online (Sandbox Code Playgroud)

    ${name:#pattern}参数扩展,阵列上使用时,删除匹配的所有元素pattern从扩张name

  2. 使用该add-zsh-hook实用程序从挂钩函数列表中删除函数:

    add-zsh-hook -d precmd _ntfy_precmd
    
    Run Code Online (Sandbox Code Playgroud)

    如果zsh告诉您没有add-zsh-hook命令,则可以使用以下命令加载它

    autoload -Uz add-zsh-hook
    
    Run Code Online (Sandbox Code Playgroud)

顺便说一句:您也可以使用列出功能add-zsh-hook -L [HOOK]