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

Neovim中如何阻止lspconfig的HTML LSP自动换行标签?

解决Neovim中HTML LSP自动换行标签的问题

你遇到的自动换行不是编辑器本身的换行设置导致的,而是HTML LSP(vscode-html-language-server)自带的格式化功能在生效,所以你之前用的:set nowrap这类编辑器层面的命令才会无效。

直接调整LSP的配置就能解决,给你两种方案:

方案一:直接禁用HTML LSP的格式化功能

在你的lspconfig配置代码里,给HTML LSP添加格式化禁用的设置:

require('lspconfig').html.setup({
  settings = {
    html = {
      format = {
        enable = false -- 关闭LSP自带的HTML格式化
      }
    }
  }
})

方案二:保留格式化但禁用标签换行

如果你还想保留LSP的其他格式化功能,只是不想让标签自动换行,可以调整格式化的具体参数:

require('lspconfig').html.setup({
  settings = {
    html = {
      format = {
        wrapLineLength = 0, -- 禁用按字符长度自动换行
        wrapAttributes = "preserve" -- 保持标签属性的原有换行状态,不自动拆分
      }
    }
  }
})

额外处理:如果全局开启了自动格式化

要是你的配置里通过自动命令(autocmd)触发了LSP自动格式化(比如保存时自动格式化),可以单独让HTML文件跳过HTML LSP的格式化:

vim.api.nvim_create_autocmd("BufWritePre", {
  pattern = "*.html",
  callback = function()
    vim.lsp.buf.format({
      filter = function(client)
        -- 排除HTML LSP,用其他格式化工具(如果有的话)或者不格式化
        return client.name ~= "html"
      end
    })
  end
})

修改完配置后重启Neovim,打开HTML文件测试一下,应该就不会自动换行标签了。

内容的提问来源于stack exchange,提问作者anotherOneHere

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:37:12