Search code examples
luaneovim

Where can I check my neovim lua 'runtimepath'?


I'm new to neovim (or vim) settings and I was trying to require '.lua' file but failed.

This is my directory structure.

~/.config/nvim
 ├ init.vim
 ├ /lua
   ├ basic.lua

and these are my codes.

~/.config/nvim/init.vim

lua require('basic')

~/.config/nvim/lua/basic.lua

print('hello from basic.lua')

and error logs (My system is M2 MacOS)

E5108: Error executing lua [string ":lua"]:1: module 'basic' not found:
        no field package.preload['basic']
        no file './basic.lua'
        no file '/opt/homebrew/share/luajit-2.1.0-beta3/basic.lua'
        no file '/usr/local/share/lua/5.1/basic.lua'
        no file '/usr/local/share/lua/5.1/basic/init.lua'
        no file '/opt/homebrew/share/lua/5.1/basic.lua'
        no file '/opt/homebrew/share/lua/5.1/basic/init.lua'
        no file './basic.so'
        no file '/usr/local/lib/lua/5.1/basic.so'
        no file '/opt/homebrew/lib/lua/5.1/basic.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'require'
        [string ":lua"]:1: in main chunk

I found that I can requiring like require('lua.basic') runs okay. So I'm assuming that '~/.config/nvim' is contained in runtimepath.

But how can I check my lua runtimepath and modify it?


Solution

  • You can get your current runtimepath via Neovim API with nvim_list_runtime_paths() function :

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