feat: update nvim and add gemini cli
This commit is contained in:
@@ -119,3 +119,5 @@
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
[http]
|
||||
sslVerify = false
|
||||
|
||||
+1
-1
@@ -8,13 +8,13 @@
|
||||
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||
"catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" },
|
||||
"claudecode.nvim": { "branch": "main", "commit": "93f8e48b1f6cbf2469b378c20b3df4115252d379" },
|
||||
"conform.nvim": { "branch": "master", "commit": "5ac2bb57a9096f00ca50e1a3c46020d5930319b8" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "0775e567b6c0be96d01a61795f7b64c1758262f6" },
|
||||
"diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" },
|
||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf-lua": { "branch": "main", "commit": "578a11f9f7c5f4436b833731ccceeda9479562f0" },
|
||||
"gemini-cli.nvim": { "branch": "main", "commit": "c9fd62adda823628f5131a939d9c56ef7a898600" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "794f03c97afc7f4b03fb6ec5111be507df1850cf" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
return {
|
||||
{
|
||||
"yetone/avante.nvim",
|
||||
enabled = false, -- 临时禁用 avante
|
||||
opts = function(_, opts)
|
||||
-- 配置使用 Gemini CLI 的 ACP (Agent Client Protocol)
|
||||
-- 强制使用 Gemini CLI 的 ACP (Agent Client Protocol)
|
||||
-- 注意:必须明确设置,覆盖 LazyVim 的默认配置
|
||||
opts.provider = "gemini-cli"
|
||||
opts.auto_suggestions_provider = opts.auto_suggestions_provider or "gemini-cli"
|
||||
opts.auto_suggestions_provider = "gemini-cli"
|
||||
|
||||
-- 清除可能存在的 claude 配置(如果 LazyVim 设置了的话)
|
||||
if opts.claude then
|
||||
opts.claude = nil
|
||||
end
|
||||
|
||||
-- 配置 ACP providers
|
||||
-- 使用网页登录(OAuth)方式,不需要 API Key
|
||||
@@ -28,19 +35,53 @@ return {
|
||||
-- 不设置 GEMINI_API_KEY,让 Gemini CLI 使用已缓存的 OAuth 凭证
|
||||
-- 如果必须使用 API Key,可以取消下面的注释:
|
||||
-- GEMINI_API_KEY = os.getenv("GEMINI_API_KEY"),
|
||||
|
||||
-- 代理配置(如果需要通过代理访问)
|
||||
-- 从环境变量读取代理设置,如果没有设置则使用系统默认
|
||||
HTTP_PROXY = os.getenv("HTTP_PROXY") or os.getenv("http_proxy"),
|
||||
HTTPS_PROXY = os.getenv("HTTPS_PROXY") or os.getenv("https_proxy"),
|
||||
ALL_PROXY = os.getenv("ALL_PROXY") or os.getenv("all_proxy"),
|
||||
NO_PROXY = os.getenv("NO_PROXY") or os.getenv("no_proxy"),
|
||||
|
||||
-- 如果需要手动指定代理,可以取消下面的注释并修改为你的代理地址:
|
||||
-- HTTP_PROXY = "http://127.0.0.1:7890",
|
||||
-- HTTPS_PROXY = "http://127.0.0.1:7890",
|
||||
-- 或者使用 SOCKS5 代理:
|
||||
-- ALL_PROXY = "socks5://127.0.0.1:7890",
|
||||
},
|
||||
-- 不设置 auth_method,让 CLI 自动使用已缓存的 OAuth 凭证
|
||||
}
|
||||
|
||||
-- 可选:配置其他 Gemini provider 设置(用于非 ACP 模式)
|
||||
-- 确保 providers 表中没有 claude 的配置
|
||||
opts.providers = opts.providers or {}
|
||||
if opts.providers.claude then
|
||||
opts.providers.claude = nil
|
||||
end
|
||||
|
||||
-- 可选:配置其他 Gemini provider 设置(用于非 ACP 模式)
|
||||
opts.providers.gemini = opts.providers.gemini or {
|
||||
-- 如果将来需要使用 REST API 模式,可以在这里配置
|
||||
-- api_key = os.getenv("GEMINI_API_KEY"),
|
||||
}
|
||||
|
||||
-- 调试:打印当前配置的 provider(可选,用于验证)
|
||||
-- vim.notify("Avante provider set to: " .. opts.provider, vim.log.levels.INFO)
|
||||
|
||||
return opts
|
||||
end,
|
||||
-- LazyVim 会自动调用 setup,这里不需要再次调用
|
||||
-- 但如果需要验证,可以取消下面的注释
|
||||
-- config = function(_, opts)
|
||||
-- vim.defer_fn(function()
|
||||
-- local avante = require("avante")
|
||||
-- if avante and avante.config then
|
||||
-- local current_provider = avante.config.provider or "unknown"
|
||||
-- vim.notify("Avante provider: " .. current_provider, vim.log.levels.INFO)
|
||||
-- end
|
||||
-- end, 1000)
|
||||
-- end,
|
||||
-- 确保在 LazyVim 的配置之后加载
|
||||
priority = 1000,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
--return {
|
||||
-- "greggh/claude-code.nvim",
|
||||
-- dependencies = {
|
||||
-- "nvim-lua/plenary.nvim", -- Required for git operations
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("claude-code").setup({
|
||||
-- window = {
|
||||
-- split_ratio = 0.3, -- Percentage of screen for the terminal window (height for horizontal, width for vertical splits)
|
||||
-- position = "botright", -- Position of the window: "botright", "topleft", "vertical", "rightbelow vsplit", etc.
|
||||
-- enter_insert = true, -- Whether to enter insert mode when opening Claude Code
|
||||
-- hide_numbers = true, -- Hide line numbers in the terminal window
|
||||
-- hide_signcolumn = true, -- Hide the sign column in the terminal window
|
||||
-- },
|
||||
-- keymaps = {
|
||||
-- toggle = {
|
||||
-- normal = "<leader>cc", -- Normal mode keymap for toggling Claude Code, false to disable
|
||||
-- terminal = "<C-,>", -- Terminal mode keymap for toggling Claude Code, false to disable
|
||||
-- variants = {
|
||||
-- continue = "<leader>cC", -- Normal mode keymap for Claude Code with continue flag
|
||||
-- verbose = "<leader>cV", -- Normal mode keymap for Claude Code with verbose flag
|
||||
-- },
|
||||
-- },
|
||||
-- window_navigation = true, -- Enable window navigation keymaps (<C-h/j/k/l>)
|
||||
-- scrolling = true, -- Enable scrolling keymaps (<C-f/b>) for page up/down
|
||||
-- },
|
||||
-- })
|
||||
-- end,
|
||||
--}
|
||||
|
||||
return {
|
||||
"coder/claudecode.nvim",
|
||||
config = true,
|
||||
keys = {
|
||||
{ "<leader>a", nil, desc = "AI/Claude Code" },
|
||||
{ "<leader>ac", "<cmd>ClaudeCode<cr>", desc = "Toggle Claude" },
|
||||
{ "<leader>af", "<cmd>ClaudeCodeFocus<cr>", desc = "Focus Claude" },
|
||||
{ "<leader>ar", "<cmd>ClaudeCode --resume<cr>", desc = "Resume Claude" },
|
||||
{ "<leader>aC", "<cmd>ClaudeCode --continue<cr>", desc = "Continue Claude" },
|
||||
{ "<leader>as", "<cmd>ClaudeCodeSend<cr>", mode = "v", desc = "Send to Claude" },
|
||||
{
|
||||
"<leader>as",
|
||||
"<cmd>ClaudeCodeTreeAdd<cr>",
|
||||
desc = "Add file",
|
||||
ft = { "NvimTree", "neo-tree", "oil" },
|
||||
},
|
||||
-- Diff management
|
||||
{ "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", desc = "Accept diff" },
|
||||
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
return {
|
||||
{
|
||||
"marcinjahn/gemini-cli.nvim",
|
||||
cmd = "Gemini", -- 懒加载,使用 :Gemini 命令时加载
|
||||
dependencies = {
|
||||
"folke/snacks.nvim", -- 必需的依赖
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>aa", "<cmd>Gemini ask<cr>", desc = "Ask Gemini" },
|
||||
{ "<leader>ac", "<cmd>Gemini toggle<cr>", desc = "Toggle Gemini CLI" },
|
||||
{ "<leader>af", "<cmd>Gemini add_file<cr>", desc = "Add File to Gemini" },
|
||||
{ "<leader>ar", "<cmd>Gemini --resume<cr>", desc = "Resume Gemini" },
|
||||
},
|
||||
config = function()
|
||||
require("gemini_cli").setup({
|
||||
-- Gemini CLI 命令
|
||||
gemini_cmd = "gemini",
|
||||
-- 传递给 gemini 命令的参数
|
||||
args = {},
|
||||
-- 自动重新加载
|
||||
auto_reload = false,
|
||||
-- 选择器配置
|
||||
picker_cfg = {
|
||||
preset = "vscode",
|
||||
},
|
||||
-- 窗口配置
|
||||
win = {
|
||||
wo = { winbar = "GeminiCLI" },
|
||||
style = "gemini_cli",
|
||||
position = "right", -- 窗口位置:right, left, top, bottom
|
||||
},
|
||||
-- 代理配置(如果需要)
|
||||
-- 代理会从环境变量 HTTP_PROXY, HTTPS_PROXY, ALL_PROXY 自动读取
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ set -e
|
||||
|
||||
# install neovim
|
||||
os_arch=$(uname -s)-$(uname -m)
|
||||
ver=v0.10.2
|
||||
ver=v0.11.5
|
||||
|
||||
case $os_arch in
|
||||
"Darwin-x86_64")
|
||||
|
||||
Reference in New Issue
Block a user