如何在vim中将lua函数绑定到按键

问题描述 投票:0回答:2

我想在单击按钮时执行导入的函数,但收到错误消息,提示其未定义。

local LazyComp = require('plugins/LazyComp/LazyComp')
vim.api.nvim_set_keymap('n', '<Tab>', "LazyComp.getFile()<cr>", {expr = true, noremap = true})
lua neovim
2个回答
3
投票

键盘映射的现代方法是使用

vim.keymap.set
:

vim.keymap.set('n', 'lhs', function() print("A lua func") end, {noremap = true})

2
投票

您需要在该映射中提供 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>")

均未经测试。

© www.soinside.com 2019 - 2024. All rights reserved.