我在哪里可以检查我的 neovim lua 'runtimepath'?

hyu*_*lim 7 lua neovim

我是 neovim(或 vim)设置的新手,我试图要求 \'.lua\' 文件但失败了。

\n

这是我的目录结构。

\n
~/.config/nvim\n \xe2\x94\x9c init.vim\n \xe2\x94\x9c /lua\n   \xe2\x94\x9c basic.lua\n
Run Code Online (Sandbox Code Playgroud)\n

这些是我的代码。

\n

〜/.config/nvim/init.vim

\n
lua require(\'basic\')\n
Run Code Online (Sandbox Code Playgroud)\n

〜/.config/nvim/lua/basic.lua

\n
~/.config/nvim\n \xe2\x94\x9c init.vim\n \xe2\x94\x9c /lua\n   \xe2\x94\x9c basic.lua\n
Run Code Online (Sandbox Code Playgroud)\n

和错误日志(我的系统是M2 MacOS)

\n
E5108: Error executing lua [string ":lua"]:1: module \'basic\' not found:\n        no field package.preload[\'basic\']\n        no file \'./basic.lua\'\n        no file \'/opt/homebrew/share/luajit-2.1.0-beta3/basic.lua\'\n        no file \'/usr/local/share/lua/5.1/basic.lua\'\n        no file \'/usr/local/share/lua/5.1/basic/init.lua\'\n        no file \'/opt/homebrew/share/lua/5.1/basic.lua\'\n        no file \'/opt/homebrew/share/lua/5.1/basic/init.lua\'\n        no file \'./basic.so\'\n        no file \'/usr/local/lib/lua/5.1/basic.so\'\n        no file \'/opt/homebrew/lib/lua/5.1/basic.so\'\n        no file \'/usr/local/lib/lua/5.1/loadall.so\'\nstack traceback:\n        [C]: in function \'require\'\n        [string ":lua"]:1: in main chunk\n
Run Code Online (Sandbox Code Playgroud)\n

我发现我可以要求 likerequire(\'lua.basic\')运行正常。\n所以我假设 \'~/.config/nvim\' 包含在runtimepath.

\n

但是我如何检查我的luaruntimepath并修改它呢?

\n

lch*_*lus 10

您可以通过 Neovim API 使用nvim_list_runtime_paths()以下函数获取当前的运行时路径:

:lua print(vim.inspect(vim.api.nvim_list_runtime_paths()))

  • 如果它对任何人有帮助,我发现“lazy.nvim”稍微延迟了“runtimepath”。因此,我的初始化脚本能够从“默认”“runtimepath”导入模块,并且在“lazy.nvim”更改“runtimpath”后不久,但讨厌的模块已经被加载。 (2认同)

小智 5

我遇到了同样的问题,我认为以下内容解决了这个问题:我删除了init.vim并现在使用init.lua具有以下内容的 :

vim.api.nvim_command('set runtimepath^=~/.vim')
vim.api.nvim_command('let &packpath = &runtimepath')
vim.api.nvim_command('source ~/.vim/vimrc')
Run Code Online (Sandbox Code Playgroud)

突然,require按预期工作了!