如何在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
相关产品推荐
相关产品推荐

