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

如何在Neovim中关闭或切换ESLint代码检查器?

关闭Neovim中ESLint代码检查提示的方法

一、临时开关(Vim内直接操作)

  • 临时关闭当前缓冲区所有诊断提示:
    :lua vim.diagnostic.disable()
    
  • 恢复当前缓冲区诊断提示:
    :lua vim.diagnostic.enable()
    
  • 仅隐藏所有诊断的虚拟文本(保留诊断功能,不显示在代码旁):
    :lua vim.diagnostic.config({ virtual_text = false })
    

二、配置文件永久禁用ESLint诊断

修改你的LSP配置,单独处理ESLint服务器,禁用其诊断能力:

local servers = { 'tsserver', 'bashls' } -- 移除列表中的'eslint'

for _, lsp in ipairs(servers) do
    lspconfig[lsp].setup {
        capabilities = capabilities,
        on_attach = function(client, bufnr)
            navbuddy.attach(client, bufnr)
            vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
            vim.keymap.set('n', 'gl', vim.diagnostic.open_float, opts)
        end,
        flags = lsp_flags,
    }
end

-- 单独配置ESLint,禁用诊断
lspconfig.eslint.setup {
    capabilities = capabilities,
    on_attach = function(client, bufnr)
        navbuddy.attach(client, bufnr)
        vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
        vim.keymap.set('n', 'gl', vim.diagnostic.open_float, opts)
        -- 关闭ESLint的诊断功能
        client.server_capabilities.documentDiagnosticProvider = false
    end,
    flags = lsp_flags,
}

三、配置快捷键按需切换ESLint诊断

在LSP配置中添加快捷键,随时开关ESLint的提示:

local servers = { 'tsserver', 'eslint', 'bashls' }

for _, lsp in ipairs(servers) do
    lspconfig[lsp].setup {
        capabilities = capabilities,
        on_attach = function(client, bufnr)
            navbuddy.attach(client, bufnr)
            vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
            vim.keymap.set('n', 'gl', vim.diagnostic.open_float, opts)
            
            -- 仅对ESLint服务器添加切换快捷键
            if client.name == 'eslint' then
                local toggle_eslint = function()
                    -- 切换诊断开关状态
                    client.server_capabilities.documentDiagnosticProvider = not client.server_capabilities.documentDiagnosticProvider
                    -- 刷新当前缓冲区诊断
                    vim.diagnostic.reset(nil, bufnr)
                end
                -- 绑定快捷键<leader>te(可自定义)
                vim.keymap.set('n', '<leader>te', toggle_eslint, { buffer = bufnr, desc = 'Toggle ESLint Diagnostics' })
            end
        end,
        flags = lsp_flags,
    }
end

配置后,在打开的文件中按<leader>te即可快速开关ESLint的诊断提示。

四、仅隐藏ESLint的虚拟文本(保留其他LSP提示)

如果只想屏蔽ESLint的代码旁提示,保留其他LSP(如tsserver)的提示,可添加全局诊断过滤:

vim.diagnostic.config({
    virtual_text = {
        filter = function(diagnostic)
            -- 排除来源为eslint的诊断
            return diagnostic.source ~= 'eslint'
        end,
    },
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:42:38