如何在Oh-my-ZSH插件无法访问外部应用程序时隐藏终端警告

6

我已经使用oh-my-zsh一段时间了,效果非常好。我想使用命令行模糊查找插件,所以我在.zshrc文件中启用了它:

plugins=(fzf)

然而,如果没有安装"fzf",当打开终端窗口时会收到警告:

[oh-my-zsh] fzf插件:找不到fzf安装目录。 请将export FZF_BASE=/path/to/fzf/install/dir添加到您的.zshrc文件中。

有没有办法隐藏这个警告消息?当我用"sudo dnf install fzf"安装fzf时,警告消失了,但也许我想在另一台没有它的电脑上克隆我的点文件,并且它并不重要。
5个回答

3

首先,您应该安装fzf,在Mac上,我使用以下命令进行安装:brew install fzf

注:Original Answer翻译成“最初的回答”。

是的,那对我的 M1 Mac 有效。 - saby

1

你需要安装fzf才能使用此插件;否则请删除它。没有安装fzf,它将无法执行任何操作。sudo apt install fzf


0

对我来说,同样重要的是brew本身在~/.zshenv路径中,像这样:

export PATH=/opt/homebrew/bin:$PATH 

在 M1 Mac 上使用 brew 安装了 FZF。
否则,会出现以下错误:
[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.
Please add `export FZF_BASE=/path/to/fzf/install/dir` to your .zshrc

0
当您使用brew安装fzf时,它需要设置brew环境。
您可以在.zshrc文件中plugins=(fzf)行之前解决为fzf设置PATH的问题。
但是,我建议按照以下步骤创建"$HOME/.zprofile"文件。
适用于m1 Mac。
# Set PATH, MANPATH, etc., for Homebrew.
eval "$(/opt/homebrew/bin/brew shellenv)"

适用于英特尔 Mac

# Set PATH, MANPATH, etc., for Homebrew.
eval "$(/usr/local/bin/brew shellenv)"

0

您可以将plugins=行放置在一个if语句中,该语句检查您的路径中是否存在fzf。例如:

if [[ -n $(command -v fzf) ]] ; then
    echo "fzf found, loading oh-my-zsh fzf plugin"
    plugins=(vi-mode fzf)
else
    echo "no fzf was found in the path"
    plugins=(vi-mode)
fi

command -v类似于which,但在这种情况下更为优越,如此答案所解释。 -n使[[ ]]$()产生非空输出时评估为真。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接