vim 如何将 luafunction 绑定到按键
How to bind a luafunction to keypress in vim
我想在单击按钮时执行导入的函数,但出现未定义的错误。
local LazyComp = require('plugins/LazyComp/LazyComp')
vim.api.nvim_set_keymap('n', '<Tab>', "LazyComp.getFile()<cr>", {expr = true, 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>")
均未测试。
我想在单击按钮时执行导入的函数,但出现未定义的错误。
local LazyComp = require('plugins/LazyComp/LazyComp')
vim.api.nvim_set_keymap('n', '<Tab>', "LazyComp.getFile()<cr>", {expr = true, 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>")
均未测试。