如何在LazyVim中为.ejs文件启用Emmet功能
解决LazyVim中Emmet在.ejs文件不生效的问题
- 先确认文件类型关联
打开.ejs文件后输入:set filetype?,要是显示的不是html.ejs,得先给.ejs文件绑定正确的文件类型,在配置里加这段:
vim.filetype.add({ pattern = { [".*.ejs"] = "html.ejs", }, })
- 调整Emmet-LS的文件类型配置
你原来的配置里加了"ejs",换成html.ejs更稳妥,修改后的完整配置如下:
return { { "neovim/nvim-lspconfig", opts = { servers = { emmet_ls = { filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "javascript", "typescript", "markdown", "html.ejs", -- 替换原有的"ejs" }, init_options = { html = { options = { ["bem.enabled"] = true, }, }, }, }, }, }, }, -- 确保html语法树已安装,Emmet依赖它 { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "html" }, }, }, }
- 验证配置
重启Neovim打开.ejs文件,输入div.container>p#text这类Emmet缩写,触发补全(LazyVim默认是<C-Space>或者Tab),看能不能展开成对应的HTML结构。要是补全没触发,也可以手动输:EmmetExpand测试,能展开就说明LSP关联成功,只是补全触发的问题,检查下nvim-cmp有没有启用LSP来源即可。
内容的提问来源于stack exchange,提问作者nidhi sharma
相关产品推荐
相关产品推荐

