💭

Neovim LSPのホバーをvimファイルでは無効化したい

2024/03/10に公開

:h lsp-defaults-disableに書いてあることなのですが、このヘルプを見つけるのが大変だったので記事化しました。

:h lsp-defaultsにあるとおり、LSPクライアントが起動するといくつかの設定がデフォルトで適用されます。Kキーによるホバーウィンドウもその一つです。
vim-language-serverでも同様に適用されるのですが、vimファイルではホバーを開くのではなく、通常通りヘルプウィンドウを開きたいところです。

これは、以下の設定で無効化できます。LspAttachのタイミングでマッピングを無効化します。
ヘルプの例のままではエラーが出ることがあったので、pcall()を介しています。

init.lua
vim.api.nvim_create_autocmd({ 'LspAttach' }, {
  callback = function(ev)
    if ev.file:match('%.vim$') then
      pcall(vim.keymap.del, 'n', 'K', { buffer = ev.buf })
    end
  end,
})

Kに別のマッピングをしている場合は、ここでそのマッピングを適用してください。

Discussion