2024-10-12
首先,我们选用的插件是LuaSnip,采用的插件管理包是lazy
。
在我的~/.config/nvim/lua/plugins.lua文件中添加如下代码:
require("lazy").setup({
-- 代码片段snippet
-- 安装LuaSnip
{
"L3MON4D3/LuaSnip",
-- follow latest release.
version = "v2.*", -- Replace <CurrentMajor> by the latest released major (first number of latest release)
-- install jsregexp (optional!).
build = "make install_jsregexp",
dependencies = { "rafamadriz/friendly-snippets" },
config = function()
-- 安装Vscode-like snippet
require("luasnip.loaders.from_vscode").lazy_load()
end,
},
})
注意,我们还添加了一个依赖rafamadriz/friendly-snippets,通过luasnip.loads.from_vscode
来访问Vscode-like的代码片段。
这一步是为了让nvim-cmp支持LuaSnip的代码片段。 我之前没想到这一步,浪费了很多时间,因为代码片段依赖代码补全插件,如果不通过cmp来触发,那么代码片段永远不会出现。 我在这里得到了启发。
-- Auto-completion engine
{
"hrsh7th/nvim-cmp",
dependencies = {
"lspkind.nvim",
"hrsh7th/cmp-nvim-lsp", -- lsp auto-completion
"hrsh7th/cmp-buffer", -- buffer auto-completion
"hrsh7th/cmp-path", -- path auto-completion
"hrsh7th/cmp-cmdline", -- cmdline auto-completion
"saadparwaiz1/cmp_luasnip", --自动补全代码snippet,这里是关键
},
config = function()
require("config.nvim-cmp")
end,
},
现在,当你输入html5的时候,就会触发代码片段,html5的代码片段(模版)了。