我计划在NeoVim上使用vim插件.因此,我的init.lua文件将有函数调用,如
vim.fn['plug#begin'](vim.fn.stdpath('data') .. '/plugged')
vim.fn['plug#']('hoob3rt/lualine.nvim') 但是,我不想假设vim-插件确实安装了。如果没有安装vim-plug,我希望我的init.lua文件能够优雅地降级,而不是抛出错误。
E5113: Error while calling lua chunk: Vim:E117: Unknown function: plug#begin
stack traceback:
[C]: in function 'plug#begin'
/Users/andy/.config/nvim/init.lua:8: in main chunk在试图调用它们之前,如何检查vim插件函数是否存在?
我尝试了print(vim.fn['plug#begin']),但出于某种原因,它打印了一个非空值:function: 0x0104ba36f0,即使该函数不存在。
发布于 2022-07-03 21:48:19
我尝试了
print(vim.fn['plug#begin']),但出于某种原因,它打印了一个非空值:function: 0x0104ba36f0,即使函数不存在。
大概是它返回了一个函数,它抛出了您正在获得的错误。因此,我建议使用pcall
local success, error = pcall(vim.fn['plug#begin'], vim.fn.stdpath('data') .. '/plugged')
if not success then --[[fail gracefully]] end警告:这将捕获任何错误,因此您可能希望执行一些检查,如if error:find"Unknown function" then ... end,以只捕获此特定错误。
https://stackoverflow.com/questions/72850062
复制相似问题