首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NeoVim -检查Lua中是否存在Vim函数

NeoVim -检查Lua中是否存在Vim函数
EN

Stack Overflow用户
提问于 2022-07-03 21:32:41
回答 1查看 620关注 0票数 3

我计划在NeoVim上使用vim插件.因此,我的init.lua文件将有函数调用,如

代码语言:javascript
复制
vim.fn['plug#begin'](vim.fn.stdpath('data') .. '/plugged')    
vim.fn['plug#']('hoob3rt/lualine.nvim')    

但是,我不想假设vim-插件确实安装了。如果没有安装vim-plug,我希望我的init.lua文件能够优雅地降级,而不是抛出错误。

代码语言:javascript
复制
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,即使该函数不存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-03 21:48:19

我尝试了print(vim.fn['plug#begin']),但出于某种原因,它打印了一个非空值:function: 0x0104ba36f0,即使函数不存在。

大概是它返回了一个函数,它抛出了您正在获得的错误。因此,我建议使用pcall

代码语言:javascript
复制
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,以只捕获此特定错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72850062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档