Neovim无法加载packer.nvim问题求助(ArchLinux环境)
环境信息
- 操作系统:
ArchLinux - Neovim版本:
0.8.3(因9.0版本光标移至括号时存在bug,已降级)
问题描述
参照某仓库方式安装packer.nvim,复制lua/user/plugins.lua到本地配置并在init.lua中引入。程序已从GitHub克隆packer.nvim,但执行packadd时报错:
E5113: Error while calling lua chunk: /home/an/.config/nvim/lua/ledity/plugins.lua:15: Vim(packadd):E919: Directory not found in 'packpath': "pack/*/opt/packer.nvim"
重启Neovim后错误消失,但packer.nvim既无法自动加载也无法手动加载。将包放置在.local/share/nvim/site/pack/packer/opt/或.local/share/nvim/site/pack/packer/start/目录下均无效,Neovim无法识别。
解决步骤
1. 确认packer.nvim的实际安装路径
先检查packer是否被正确克隆到目标位置:
ls ~/.local/share/nvim/site/pack/packer/start/packer.nvim # 若之前装在opt目录则检查: ls ~/.local/share/nvim/site/pack/packer/opt/packer.nvim
如果目录为空,手动重新克隆到start目录(确保启动自动加载):
git clone --depth 1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim
2. 检查并修正packpath配置
Neovim通过packpath查找插件,在Neovim中执行:echo &packpath,确认输出包含~/.local/share/nvim/site。如果没有,在init.lua开头添加:
vim.o.packpath = vim.o.packpath .. "," .. vim.fn.expand("~/.local/share/nvim/site")
3. 修正plugins.lua的加载逻辑
确保在调用packer功能前先成功加载它,修改lua/ledity/plugins.lua:
-- 尝试加载packer,失败则手动执行packadd local status_ok, packer = pcall(require, "packer") if not status_ok then vim.cmd([[packadd packer.nvim]]) packer = require("packer") end packer.startup(function(use) -- 必须先声明自身作为插件 use "wbthomason/packer.nvim" -- 其他插件配置... end)
4. 确认init.lua的引入顺序
确保require("ledity.plugins")的调用在packpath配置之后,且没有被条件判断逻辑阻塞(比如不要放在某个只在特定场景触发的分支里)。
5. 清除缓存并重启
删除Neovim缓存文件避免旧配置干扰:
rm -rf ~/.cache/nvim
重启Neovim后,执行:lua print(require("packer")),若输出table则说明加载成功;若仍报错,回到步骤1重新确认安装路径。
内容的提问来源于stack exchange,提问作者Andrey Voeyko

