neovim 的 init.lua 模块中找不到 "lua.plugins"。

4

我正在进行neovim的配置。

我在C:\Users\wupan\AppData\Local\nvim\init.lua中添加了配置文件。

require("lua.plugins")

并且 C:\Users\wupan\AppData\Local\nvim\lua\plugins.lua

return require('packer').startup(function()
use "wbthomason/packer.nvim"
end)

在启动 neovim 后

Error detected while processing C:\Users\wupan\AppData\Local\nvim\init.lua:
E5113: Error while calling lua chunk: C:\Users\wupan\AppData\Local\nvim\init.lua:1: module 'lua.plugins' not found:
    no field package.preload['lua.plugins']
    no file '.\lua\plugins.lua'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\lua\lua\plugins.lua'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\lua\lua\plugins\init.lua'
    no file '.\lua\plugins.dll'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\lua\plugins.dll'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\loadall.dll'
    no file '.\lua.dll'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\lua.dll'
    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\loadall.dll'
stack traceback:
    [C]: in function 'require'
    C:\Users\wupan\AppData\Local\nvim\init.lua:1: in main chunk
Press ENTER or type command to continue

我可以问一下为什么吗?

我尝试安装Lua并测试require。

scoop install lua

C:\Users\wupan\code\lua\test.lua

require("hello")

C:\Users\wupan\code\lua\hello.lua

print("hello world")

还存在问题。

C:\Users\wupan\scoop\apps\lua\current\lua54.exe: .\test.lua:1: module 'hello' not found:
    no field package.preload['hello']
    no file 'C:\Users\wupan\scoop\apps\lua\current'
    no file 'C:\Users\wupan\scoop\apps\lua\current'
stack traceback:
    [C]: in function 'require'
    .\test.lua:1: in main chunk
    [C]: in ?
1个回答

7

问题分析

我们来使用你提供的以下示例:

C:\Users\wupan\AppData\Local\nvim\init.lua

require("lua.plugins")

C:\Users\wupan\AppData\Local\nvim\lua\plugins.lua

return require('packer').startup(function()
    use "wbthomason/packer.nvim"
end)

现在让我们来看一下您的错误信息:

    no file 'C:\Users\wupan\scoop\apps\neovim\current\bin\lua\lua\plugins.lua'

重要的部分是这里的bin\lua\lua。因为你的require("lua.plugins")开始在你的运行时路径中查找目录(有关更多信息,请参见:h rtp)。

解决方案

你只需要修复C:\Users\wupan\AppData\Local\nvim\init.lua文件中的内容:

require("plugins")

因为这样neovim将会在你的运行时路径中查找名称为plugins的目录,例如在C:\Users\wupan\scoop\apps\neovim\current\bin\lua中,因为它在其中。

小提示

您可以将您的内容从C:\Users\wupan\AppData\Local\nvim\lua\plugins.lua更改为:

require('packer').startup(function()
    use "wbthomason/packer.nvim"
end)

或者我的做法是:
local packer = require('packer')

packer.startup(function(use)
    use 'wbthomason/packer.nvim'
end)

我个人认为这使得它更易读一些 :)

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