请问下Mac 下使用 `vertico` 这个警告报错有办法修复吗?

如下图所示

一般警告我都是哪缺装哪个, 这个警告怎么解决呢?

doom emacs 中的关于 vertico 的 readme

1 个赞

你试试

brew install grep

不行的, 我试过了

你安装 ripgrep 试试看,我在 mac 上用 vertico 最新版没遇到你的这个问题。

估计是 exec-path 的问题

可以试下安装 exec-path-from-shell 或者自己设置 exec-path,具体可以参考这个贴子 Mac 下给 Emacs 设置 PATH 和 exec-path

1 个赞

对,macOS 上如果是通过 Application 启动的 Emacs 要装 exec-path-from-shell 这个才能读取 .zshrc的设置。

这个问题不知道为什么上游一直都不修复,好像好多年了,难道有什么过不去的坎吗?

Windows 系统都没这个问题。

1 个赞

Mac的brew安装和系统自带的bsd风格的文件时不会加入path,命名会在前面加一个g,你把homebrew的gnu grep的那个path加入到path中应该就好了

不好意思好久没用 macOS, 把问题想简单了。 如果是

brew install grep --with-default-names

这样能解决问题吗? 总之这个警告是 consult 发出的,你需要确保 GNU grep 是默认的 grep 命令 (look ahead 支持)。如果还不行应该就是 PATH 的问题了。

目前最简单快捷的解决方法是换 ivy 就什么事都没有, 其他帖子说的我也不是很懂, 等哪天有时间了再研究一下 GitHub - purcell/exec-path-from-shell: Make Emacs use the $PATH set up by the user's shell

在 .zshrc 中加入 export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH" 来使用 gnu grep

1 个赞

总结一下就是 MacOS 系统自带的 grep 是非常老旧的, 我们可以通过包管理工具安装一个比较新版本的 grep, 并且通过更改环境变量来替换它。

# 我们可以查看到自带的 grep 的版本
grep --version

grep (BSD grep, GNU compatible) 2.6.0-FreeBSD

# 通过 HomeBrew 可以安装新的 grep
brew install grep

# 但是这样的话名字就冲突了, 所以 Homebrew 的解决方法是加一个前缀 “g”
ggrep --version

ggrep (GNU grep) 3.7
Packaged by Homebrew
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others; see
<https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

# 至于环境变量的设置, homebrew 也给出了方法
brew info grep

......
==> Caveats
All commands have been installed with the prefix "g".
If you need to use these commands with their normal names, you
can add a "gnubin" directory to your PATH from your bashrc like:
  PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"
......

也就是说在你的 shell 环境加载文件(比如你使用 zsh) .zshenv 这个文件中(这个优先级更高, 而且可以在非交互界面时也读取)加上:

export PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"

然后再重启一下终端即可.

这个路径已经不适用于现在的 HomeBrew 了, 现在应该是:

export PATH="/opt/homebrew/opt/grep/libexec/gnubin:$PATH"

错了, 是不适用于 M1 的 Mac