M1 Max(Apple Silicon)安装nvim-treesitter报arm64架构tree-sitter-cli错误如何解决
问题根因
报错来自旧版本tree-sitter-cli的安装脚本:2022年年中之前发布的tree-sitter-cli版本未提供Apple Silicon(arm64)架构的预编译包,安装脚本识别到arm64架构就会直接抛出错误;另外如果本地安装的是x86版本的Node.js(通过Rosetta转译运行),也会触发架构识别异常。
修复方案
按操作成本从低到高排序:
- 方案1:使用系统全局安装的tree-sitter,跳过npm局部安装流程
- 先通过Homebrew安装原生arm64版本的tree-sitter:
brew install tree-sitter - 编辑nvim配置文件(默认路径为
~/.config/nvim/init.lua或~/.config/nvim/init.vim),在nvim-treesitter的配置块中添加参数,禁止安装流程自动拉取npm版tree-sitter-cli:
Lua配置写法:
Vimscript配置写法:require("nvim-treesitter.install").command_extra_args = { generate = { "--no-install-cli" } }lua << EOF require("nvim-treesitter.install").command_extra_args = { generate = { "--no-install-cli" } } EOF - 重启nvim,重新执行
:TSInstall安装需要的parser即可。
- 先通过Homebrew安装原生arm64版本的tree-sitter:
- 方案2:更换为arm64原生Node.js
卸载当前通过Rosetta运行的x86版Node.js,安装arm64架构的Node.js LTS版本,终端执行node -p "process.arch"返回结果为arm64即说明安装正确,之后重新运行nvim-treesitter安装流程即可。 - 方案3:临时指定架构绕过校验
如果不想修改配置或更换Node版本,启动nvim前先执行环境变量声明,强制tree-sitter-cli安装脚本识别为arm64架构:
进入nvim后再执行parser安装操作即可。export TREE_SITTER_CLI_ARCH=arm64 nvim
校验方式
安装完成后在nvim中执行:TSCheck,所有已安装parser无报错即修复成功。
内容的提问来源于stack exchange,提问作者flppv
相关产品推荐
相关产品推荐

