如何清除Neovim中LSP函数定义搜索生成的高亮?
如何清除Neovim中LSP函数定义搜索生成的高亮?
别担心,这个问题其实有好几种简单的解决办法,完全不用每次重启Neovim那么麻烦!
首先,最直接的临时解决方案:在正常模式下输入命令 :nohl(全称是:nohlsearch),回车之后就能立刻清除当前的高亮效果。这个是Neovim自带的命令,专门用来清除各类搜索类高亮——不管是普通文本搜索,还是LSP生成的函数定义/引用高亮都能搞定。
如果你觉得每次输命令太繁琐,可以给它绑定个顺手的快捷键,比如把Escape键改成既能退出插入模式又能清高亮,在你的配置里加一行:
vim.keymap.set('n', '<Esc>', '<Cmd>nohlsearch<CR>', { silent = true })
这样以后按Esc就能一键清高亮,操作起来特别顺手。
另外,还有个专门针对LSP引用高亮的方法:Neovim提供了vim.lsp.buf.clear_references()函数,专门用来清除LSP生成的函数引用高亮。你可以把它绑定成快捷键,加到你现有的on_attach函数里:
vim.keymap.set('n', '<leader>cr', vim.lsp.buf.clear_references, { desc = "Clear LSP references highlight" })
之后按<leader>cr就能精准清除这类LSP高亮了。
至于你之前试的:q、:close和Esc没用的原因::q本来就是关闭窗口的命令,自然会退出编辑;而默认的Esc只是用来退出插入模式或者取消正在输入的命令,并不会触发清除高亮的操作,所以才不管用~
备注:内容来源于stack exchange,提问作者MK4
相关产品推荐
相关产品推荐

