LazyVim nutzt blink.cmp als Completion-Engine. Der Vorschlags-Popup ist beim Coden hilfreich, beim Schreiben in Markdown oder beim Notieren stört er eher. Mit einem Override bekommst Du Strg+Q als Toggle, sauber pro Buffer.

Wie Plugins in LazyVim funktionieren

Plugins in LazyVim laufen über lazy.nvim. Jede Lua-Datei unter ~/.config/nvim/lua/plugins/ ist eine Plugin-Spezifikation. Neue Plugins werden darüber installiert, bestehende über opts umkonfiguriert oder mit einer Funktion erweitert. Damit zerlegst Du die Konfiguration in kleine, themenscharfe Bausteine statt einer monolithischen Datei.

Override anlegen

Eine neue Datei für den Override direkt in nvim öffnen:

nvim ~/.config/nvim/lua/plugins/blink-toggle.lua

Inhalt einfügen und mit :wq speichern und schließen:

return {
  "saghen/blink.cmp",
  opts = function(_, opts)
    local completion_toggle = Snacks.toggle({
      name = "Completion",
      get = function()
        return vim.b.completion
      end,
      set = function(state)
        vim.b.completion = state
      end,
    })

    local function toggle_completion()
      require("blink.cmp").hide()
      completion_toggle:toggle()
    end

    vim.keymap.set({ "i", "n" }, "<C-q>", toggle_completion, { desc = "Toggle Completion" })
    opts.enabled = function()
      return vim.b.completion
    end

    return opts
  end,
}

Was der Override macht

opts.enabled hängt jetzt an vim.b.completion, einer Buffer-Variable. Der Status wird also pro Buffer gehalten. Mit Strg+Q schaltest Du Completion im aktuellen Buffer um, im Insert- und Normal-Modus. Snacks.toggle sorgt dafür, dass das Umschalten als benannter Toggle in LazyVim auftaucht.

Achtung: In frisch geöffneten Buffern ist vim.b.completion zunächst nicht gesetzt, Completion ist also aus. Ein Druck auf Strg+Q schaltet sie ein. Wenn das nicht zum Workflow passt, lässt sich der Default mit einem Autocmd auf true setzen.