You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:23:01