如何访问nvim_create_user_command的参数

fab*_*s05 5 lua neovim

我正在为我的 neovim 配置编写一个 lua 函数作为自定义命令。

正如文档所述"The function is called with a single table argument that contains the following keys",但是当表未定义为变量时,我如何访问这些键。

我尝试像这样调用该函数:

vim.api.nvim_create_user_command('Build', fn_build(args), { nargs='?' })
Run Code Online (Sandbox Code Playgroud)

并通过以下方式访问值:

function fn_build(args)
  run = args["args"] or nil
end
Run Code Online (Sandbox Code Playgroud)

但我会得到一个零错误。


@Ani 评论道:

尝试在 github.com/nanotee/nvim-lua-guide 中查看是否有与此接近的内容

我找到了指南,但它并没有帮助我解决它。我不确定是否desc使用正确的变量。我什至会如何使用它。指南说:

还有两个附加属性可用:

  1. desc 允许您控制在定义为 Lua 回调的命令上运行 :command {cmd} 时显示的内容。与键盘映射类似,建议将 desc 键添加到定义为 Lua 函数的命令中。
  2. force 相当于调用 :command! 如果同名命令已存在,则替换该命令。默认情况下它是 true,这与 Vimscript 的等效项不同。

我是否盲目并监督某些事情?

请为我指明正确的方向

小智 3

您正在调用该函数fn_build并注册返回值。相反,您应该只将该函数作为参数传递。尝试以下操作

vim.api.nvim_create_user_command('Build', fn_build, { nargs='?' })
Run Code Online (Sandbox Code Playgroud)