> [!IMPORTANT] > A free large language model(LLM) plugin that allows you to interact with LLM in Neovim. > > The main functions include but are not limited to: > > - AI chat > - Word translation > - Code explanation > - Code optimization > - Test case generation > - AI translation > - Generation of git commit messages > - Generation of docstrings Link: [Github:Kurama622/llm.nvim](https://github.com/Kurama622/llm.nvim) # Install - lazy.nvim ```lua return { { "Kurama622/llm.nvim", dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim" }, cmd = { "LLMSessionToggle", "LLMSelectedTextHandler", "LLMAppHandler" }, config = function() require("llm").setup({ url = "https://api.deepseek.com/chat/completions", model = "deepseek-chat", api_type = "openai", max_tokens = 4096, temperature = 0.3, top_p = 0.7, prompt = "You are a helpful Chinese assistant.", prefix = { user = { text = " ", hl = "Title" }, assistant = { text = " ", hl = "Added" }, }, -- history_path = "/tmp/llm-history", save_session = true, max_history = 15, max_history_name_length = 20, -- stylua: ignore keys = { -- The keyboard mapping for the input window. ["Input:Submit"] = { mode = "n", key = "" }, ["Input:Cancel"] = { mode = {"n", "i"}, key = "" }, ["Input:Resend"] = { mode = {"n", "i"}, key = "" }, -- only works when "save_session = true" ["Input:HistoryNext"] = { mode = {"n", "i"}, key = "" }, ["Input:HistoryPrev"] = { mode = {"n", "i"}, key = "" }, -- The keyboard mapping for the output window in "split" style. ["Output:Ask"] = { mode = "n", key = "i" }, ["Output:Cancel"] = { mode = "n", key = "" }, ["Output:Resend"] = { mode = "n", key = "" }, -- The keyboard mapping for the output and input windows in "float" style. ["Session:Toggle"] = { mode = "n", key = "ac" }, ["Session:Close"] = { mode = "n", key = {"", "Q"} }, }, }) end, keys = { { "ac", mode = "n", "LLMSessionToggle" }, { "ae", mode = "v", "LLMSelectedTextHandler 请解释下面这段代码" }, { "ts", mode = "x", "LLMSelectedTextHandler 英译汉" }, }, }, } ```