我计划在NeoVim中使用vim-plug。因此,我的
init.lua
文件将包含函数调用,例如:vim.fn['plug#begin'](vim.fn.stdpath('data') .. '/plugged')
vim.fn['plug#']('hoob3rt/lualine.nvim')
然而,我不想假定 vim-plug 已经安装。如果 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-plug函数之前检查它们是否存在?
我尝试使用print(vim.fn['plug#begin'])
,但出于某种原因,它打印出一个非空值:function: 0x0104ba36f0
,即使该函数不存在。
:help exists()
呢? - Justin M. Keyesexists()
实际上不起作用,因为 vim-plug 是自动加载的,所以exists()
会返回 false,直到你在 NeoVim 中触发某些操作来查找插件并加载它,例如调用vim.fn['plug#begin']
。在你这样做之后,exists()
的输出将是准确的。 - Andy Carlson