From 81b9d5964ea73e51422fd27c8dc55e6a75394f5e Mon Sep 17 00:00:00 2001 From: caprain Date: Tue, 14 Apr 2026 22:10:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BF=AB=E6=8D=B7=E9=94=AE?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/pack/configs/blinkcmp.lua | 3 ++- lua/pack/configs/peek.lua | 9 ++------- lua/pack/configs/translate.lua | 29 +++++++++++++++++++++++++++++ lua/pack/plugins.lua | 4 +++- nvim-pack-lock.json | 4 ++++ snippets/lua.json | 11 +++++++++-- 6 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 lua/pack/configs/translate.lua diff --git a/lua/pack/configs/blinkcmp.lua b/lua/pack/configs/blinkcmp.lua index cc7d912..dcbecce 100644 --- a/lua/pack/configs/blinkcmp.lua +++ b/lua/pack/configs/blinkcmp.lua @@ -15,12 +15,13 @@ vim.api.nvim_create_autocmd({ "InsertEnter", "CmdlineEnter", "LspAttach" }, { -- 调用引擎的 load 方法,把 setup 逻辑作为匿名函数传进去 PackUtils.load(P, function() require("blink.cmp").setup({ - fuzzy = { + fuzzy = { -- 下载预编译的Fuzzy以节省空间 prebuilt_binaries = { force_version = 'v*', }, }, cmdline = { + -- 默认的cmdline回车按下执行命令 -- keymap = { [""] = { "select_and_accept", "fallback" } }, completion = { list = { selection = { preselect = false, auto_insert = true } }, diff --git a/lua/pack/configs/peek.lua b/lua/pack/configs/peek.lua index 14b2120..0ef3c87 100644 --- a/lua/pack/configs/peek.lua +++ b/lua/pack/configs/peek.lua @@ -8,8 +8,8 @@ local P = { PackUtils.setup_listener(P.name, P.build_cmd) --- 2. 封装加载逻辑 -local function load_peek() +-- 在插件未加载时,这些命令就存在了。一旦被调用,它们会先加载插件,再执行真正的功能。 +vim.api.nvim_create_user_command("PeekOpen", function() PackUtils.load(P, function() require("peek").setup({ port = 9000, @@ -18,11 +18,6 @@ local function load_peek() -- app = { "google-chrome-stable", "--app=http://localhost:9000/?theme=dark", "--incognito" }, }) end) -end - --- 在插件未加载时,这些命令就存在了。一旦被调用,它们会先加载插件,再执行真正的功能。 -vim.api.nvim_create_user_command("PeekOpen", function() - load_peek() -- 触发 PackUtils.load (包含构建检查) require("peek").open() end, { desc = "Lazy load and open Peek" }) diff --git a/lua/pack/configs/translate.lua b/lua/pack/configs/translate.lua new file mode 100644 index 0000000..1d01b52 --- /dev/null +++ b/lua/pack/configs/translate.lua @@ -0,0 +1,29 @@ +-- === 快捷键翻译 === +local P = { + name = "translate.nvim", +} + +vim.api.nvim_set_keymap('n', 'tr', "viw:Translate ZH -output=replace", { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', 'tr', ":'<,'>Translate ZH -output=replace", { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'te', "viw:Translate EN -output=replace", { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', 'te', ":'<,'>Translate EN -output=replace", { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', 'ts', "viw:Translate ZH", { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', 'ts', ":'<,'>Translate ZH", + { noremap = true, silent = true }) +-- 懒加载触发器,特定命令触发 +vim.api.nvim_create_user_command("Translate", function() + PackUtils.load(P, function() + require("translate").setup({ + default = { + command = "translate_shell", + }, + -- preset = { + -- command = { + -- translate_shell = { + -- args = { "-e", "bing" } + -- } + -- } + -- } + }) + end) +end, { desc = "描述" }) diff --git a/lua/pack/plugins.lua b/lua/pack/plugins.lua index 444261e..62c2235 100644 --- a/lua/pack/plugins.lua +++ b/lua/pack/plugins.lua @@ -48,6 +48,8 @@ local specs = { 'https://github.com/cap153/peek.nvim', -- yazi.lua 文件管理器 'https://github.com/mikavilpas/yazi.nvim', + -- translate.lua 快捷键翻译 + "https://github.com/uga-rosa/translate.nvim", -- sudo权限保存文件 "https://github.com/lambdalisue/vim-suda", -- 查看可用键位 @@ -89,7 +91,7 @@ vim.api.nvim_create_user_command("PackUpdate", function(opts) vim.pack.update(targets) end, { nargs = "*", -- 支持 0 到多个参数 - complete = get_plugin_names, -- 绑定补全函数 + complete = get_plugin_names, -- 绑定补全函数,可以改用'packadd'不过补全列表会有一些非vim.pack管理的插件 desc = "Update specified or all plugins", }) diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index dda2e4e..1d8eccf 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -100,6 +100,10 @@ "rev": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e", "src": "https://github.com/folke/snacks.nvim" }, + "translate.nvim": { + "rev": "1a841e56407ba02e919ed9af573dbe531404aebb", + "src": "https://github.com/uga-rosa/translate.nvim" + }, "tv.nvim": { "rev": "c0603ca8f31299c83deaa9a24a63d67116db25cd", "src": "https://github.com/alexpasmantier/tv.nvim" diff --git a/snippets/lua.json b/snippets/lua.json index 3a0dd01..bc2fff4 100644 --- a/snippets/lua.json +++ b/snippets/lua.json @@ -45,11 +45,18 @@ "\t\tend)", "\tend", "})", - "-- vim.keymap.set({ \"n\", \"x\" }, \"${8:<++>}\", function()", + "-- 特定命令触发", + "-- vim.api.nvim_create_user_command(\"${8:<++>}\", function()", "-- \tPackUtils.load(P, function()", "-- \t\t$9", "-- \tend)", - "-- \tvim.cmd(\"${10:Command}\")", + "-- end, { desc = \"${10:描述}\" })", + "-- 快捷键触发", + "-- vim.keymap.set({ \"n\", \"x\" }, \"${11:<++>}\", function()", + "-- \tPackUtils.load(P, function()", + "-- \t\t$12", + "-- \tend)", + "-- \tvim.cmd(\"${13:Command}\")", "-- end, { desc = \"${0:描述}\" })" ], "description": "Neovim Native Package Loader (Pure Config)"