我决定大扫除并更新我的 nvim 配置文件/插件,并认为我会正确使用 after/plug 文件夹。 在设置 LSP(使用 mason、mason-lspconfig 和 lspconfig)时,我想将所有 lsp 语言服务器设置从 after/plugin/lsp/init.lua 移到它们自己的文件中(现在在 after/plugin/lsp/设置)。
问题是我似乎无法将它们要求到 init.lua 文件中。
我试过无济于事的事情:
require(‘after/plugin/lsp/settings/sumneko_lua.lua’)
require(vim.fn.stdpath("config") .. "/after/plugin/lsp/settings/sumneko_lua”)
require(vim.fn.expand('%:h').. ‘/settings/sumneko_lua’)
当我在 nvim 中资源文件时,使用
expand
的尝试有效;但在启动 nvim 时会导致错误。
我知道 after/plugin 中的所有文件都是在启动时自动获取的。所以如果我有一个文件 shared.lua:
local M = {}
function M.greet()
vim.notify("Hello!”)
end
return M
在与after/plugin/lsp/init.lua相同的文件夹中,如何从init.lua访问greet()函数?
任何指针将不胜感激。
最后证明是一个非常简单的解决方案:我只是更新了 init.lua 中要搜索的路径
-- nvim/init.lua
-- Allow require to look in after/plugin folder
local home_dir = os.getenv("HOME")
package.path = home_dir .. "/.config/nvim/after/plugin/?.lua;" .. package.path
然后我可以要求 after/plugin 文件夹中的任何文件
例如 -
require("lsp/settings/sumneko")
或 require("lsp/shared").greet()