我想在单击按钮时执行导入的函数,但收到错误消息,提示其未定义。
local LazyComp = require('plugins/LazyComp/LazyComp')
vim.api.nvim_set_keymap('n', '<Tab>', "LazyComp.getFile()<cr>", {expr = true, noremap = true})
键盘映射的现代方法是使用
vim.keymap.set
:
vim.keymap.set('n', 'lhs', function() print("A lua func") end, {noremap = true})
您需要在该映射中提供 vim 脚本表达式。不是 Lua 函数调用。无法通过字符串从 nvim 调用该局部变量。
我不是 nvim 的 Lua API 专家,但 1 分钟的网络搜索给了我这个解决方案:
vim.api.nvim_set_keymap('n', '<TAB>', "<cmd>lua require('plugins/LazyComp/LazyComp').getFile()<CR>")
或者,您需要使您的模块在全球范围内可用。
_G.LazyComp = require('plugins/LazyComp/LazyComp')
然后你应该可以通过
v:lua
访问全局环境
vim.api.nvim_set_keymap('n', '<TAB>', "v:lua.LazyComp.getFile()<CR>")
均未经测试。