diff --git a/git/.gitconfig b/git/.gitconfig index 8597b90..bad8aa5 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -119,3 +119,5 @@ required = true clean = git-lfs clean -- %f smudge = git-lfs smudge -- %f +[http] + sslVerify = false diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 2bc0638..130c64c 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -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" }, diff --git a/nvim/lua/plugins/avante.lua b/nvim/lua/plugins/avante.lua index 13f5e18..7adac3a 100644 --- a/nvim/lua/plugins/avante.lua +++ b/nvim/lua/plugins/avante.lua @@ -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, }, } diff --git a/nvim/lua/plugins/claude-code.lua b/nvim/lua/plugins/claude-code.lua deleted file mode 100644 index ddd9bcc..0000000 --- a/nvim/lua/plugins/claude-code.lua +++ /dev/null @@ -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 = "cc", -- Normal mode keymap for toggling Claude Code, false to disable --- terminal = "", -- Terminal mode keymap for toggling Claude Code, false to disable --- variants = { --- continue = "cC", -- Normal mode keymap for Claude Code with continue flag --- verbose = "cV", -- Normal mode keymap for Claude Code with verbose flag --- }, --- }, --- window_navigation = true, -- Enable window navigation keymaps () --- scrolling = true, -- Enable scrolling keymaps () for page up/down --- }, --- }) --- end, ---} - -return { - "coder/claudecode.nvim", - config = true, - keys = { - { "a", nil, desc = "AI/Claude Code" }, - { "ac", "ClaudeCode", desc = "Toggle Claude" }, - { "af", "ClaudeCodeFocus", desc = "Focus Claude" }, - { "ar", "ClaudeCode --resume", desc = "Resume Claude" }, - { "aC", "ClaudeCode --continue", desc = "Continue Claude" }, - { "as", "ClaudeCodeSend", mode = "v", desc = "Send to Claude" }, - { - "as", - "ClaudeCodeTreeAdd", - desc = "Add file", - ft = { "NvimTree", "neo-tree", "oil" }, - }, - -- Diff management - { "aa", "ClaudeCodeDiffAccept", desc = "Accept diff" }, - { "ad", "ClaudeCodeDiffDeny", desc = "Deny diff" }, - }, -} diff --git a/nvim/lua/plugins/gemini-cli.lua b/nvim/lua/plugins/gemini-cli.lua new file mode 100644 index 0000000..7120b8f --- /dev/null +++ b/nvim/lua/plugins/gemini-cli.lua @@ -0,0 +1,38 @@ +return { + { + "marcinjahn/gemini-cli.nvim", + cmd = "Gemini", -- 懒加载,使用 :Gemini 命令时加载 + dependencies = { + "folke/snacks.nvim", -- 必需的依赖 + }, + keys = { + { "aa", "Gemini ask", desc = "Ask Gemini" }, + { "ac", "Gemini toggle", desc = "Toggle Gemini CLI" }, + { "af", "Gemini add_file", desc = "Add File to Gemini" }, + { "ar", "Gemini --resume", 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, + }, +} + diff --git a/script/nvim-install.sh b/script/nvim-install.sh index b2d6e66..4e6b994 100755 --- a/script/nvim-install.sh +++ b/script/nvim-install.sh @@ -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")