gpt4 book ai didi

function - 是否可以在Lua中自动定义函数

转载 作者:行者123 更新时间:2023-12-05 03:18:44 25 4
gpt4 key购买 nike

这些是我要定义的一些函数:

local function nmap(lhs, rhs, opts)
keymap.set("n", lhs, rhs, opts)
end

local function imap(lhs, rhs, opts)
keymap.set("i", lhs, rhs, opts)
end

local function vmap(lhs, rhs, opts)
keymap.set("v", lhs, rhs, opts)
end

local function cmap(lhs, rhs, opts)
keymap.set("c", lhs, rhs, opts)
end

local function omap(lhs, rhs, opts)
keymap.set("o", lhs, rhs, opts)
end

虽然是重复的。有没有更有效的方法来定义这些功能?这些函数中的每一个唯一不同的是一个字母(n、i、v、c、o)。我可以使用 for 循环来自动定义每个吗?

最佳答案

使用 _G(全局环境表)你可以做到这一点。

local letters = {'n', 'i', 'v', 'c', 'o'}

for _, c in ipairs(letters) do
_G[c..'map'] = function(...)
keymap.set(c, ...)
end
end

-- cmap(insert, arguments, here)

这实际上也在本指南中说明 https://github.com/nanotee/nvim-lua-guide请参阅vim 命名空间部分


注意不要覆盖任何重要的变量(比如表格或数学库哈哈):)

关于function - 是否可以在Lua中自动定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73639978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com