mirror of
https://github.com/cap153/nvim.git
synced 2026-07-16 22:16:54 +08:00
强制更新插件
This commit is contained in:
parent
b7c38200f4
commit
ef46f8a6ad
4 changed files with 36 additions and 29 deletions
5
.github/README.md
vendored
5
.github/README.md
vendored
|
|
@ -1,6 +1,11 @@
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> 本人是colemak键位用户
|
> 本人是colemak键位用户
|
||||||
|
|
||||||
|
可以用下面命令来更新插件:(不指定插件名默认更新全部)
|
||||||
|
|
||||||
|
* `:PackUpdate` 弹出界面让你审查,按 `:w` 确认
|
||||||
|
* `:PackUpdate!` 跳过界面,直接后台拉取并更新
|
||||||
|
|
||||||
某些插件需要安装特定的软件才能正常使用,如果是arch用户可以使用`paru`或者`yay`安装,示例如下
|
某些插件需要安装特定的软件才能正常使用,如果是arch用户可以使用`paru`或者`yay`安装,示例如下
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,47 @@
|
||||||
-- === LSP 核心配置 (Lspconfig + Mason) ===
|
-- === LSP 核心配置 (Lspconfig + Mason) ===
|
||||||
if vim.g.vscode then return end
|
if vim.g.vscode then return end
|
||||||
|
|
||||||
-- 1. 环境探测:判断 CPU 架构,决定安装哪些 LSP
|
-- 环境探测:判断 CPU 架构,决定安装哪些 LSP
|
||||||
local arch = jit and jit.arch or ""
|
local arch = jit and jit.arch or ""
|
||||||
local is_arm = arch:match("arm") or arch:match("aarch64")
|
local is_arm = arch:match("arm") or arch:match("aarch64")
|
||||||
|
|
||||||
local servers = { "lua_ls", "rust_analyzer", "pylsp", "denols", }
|
local servers = { "lua_ls", "rust_analyzer", "pylsp", "denols", }
|
||||||
if not is_arm then
|
if not is_arm then
|
||||||
vim.list_extend(servers, { "marksman", "svelte", "cssls", "html" })
|
vim.list_extend(servers, { "marksman", "svelte", "cssls", "html" })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 2. 插件配置清单
|
-- 插件配置清单
|
||||||
local P = {
|
local P = {
|
||||||
name = "nvim-lspconfig",
|
name = "nvim-lspconfig",
|
||||||
deps = { "mason.nvim", "mason-lspconfig.nvim", "inlay-hints.nvim" },
|
deps = { "mason.nvim", "mason-lspconfig.nvim", "inlay-hints.nvim" },
|
||||||
}
|
}
|
||||||
|
|
||||||
-- 3. 懒加载触发器:当打开文件时触发
|
-- === 全局快捷键映射 ===
|
||||||
|
local opts = { noremap = true, silent = true }
|
||||||
|
vim.keymap.set("n", "<leader>h", vim.lsp.buf.hover, opts) -- <space>h显示提示文档
|
||||||
|
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- gd跳转到定义
|
||||||
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) -- gD跳转到声明(例如c语言中的头文件中的原型、一个变量的extern声明)
|
||||||
|
vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) -- go跳转到变量类型定义的位置(例如一些自定义类型)
|
||||||
|
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- <space>rn变量重命名
|
||||||
|
vim.keymap.set("n", "<leader>aw", vim.lsp.buf.code_action, opts) -- <space>aw可以在出现警告或错误的地方打开建议的修复方法
|
||||||
|
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- <space>d浮动窗口显示所在行警告或错误信息
|
||||||
|
vim.keymap.set("n", "<leader>-", vim.diagnostic.goto_prev, opts) -- <space>-跳转到上一处警告或错误的地方
|
||||||
|
vim.keymap.set("n", "<leader>=", vim.diagnostic.goto_next, opts) -- <space>+跳转到下一处警告或错误的地方
|
||||||
|
-- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- gr跳转到引用了对应变量或函数的位置,改用snacks
|
||||||
|
-- vim.keymap.set({ 'n', 'x' }, '<leader>f', function() vim.lsp.buf.format({ async = true }) end, opts) -- <space>f进行代码格式化
|
||||||
|
|
||||||
|
-- 懒加载触发器:当打开文件时触发
|
||||||
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
|
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
|
||||||
callback = function()
|
callback = function()
|
||||||
PackUtils.load(P, function()
|
PackUtils.load(P, function()
|
||||||
-- === A. 基础依赖初始化 (Mason) ===
|
-- === 基础依赖初始化 (Mason) ===
|
||||||
require("mason").setup()
|
require("mason").setup()
|
||||||
require("mason-lspconfig").setup({
|
require("mason-lspconfig").setup({
|
||||||
ensure_installed = servers,
|
ensure_installed = servers,
|
||||||
})
|
})
|
||||||
require("inlay-hints").setup()
|
require("inlay-hints").setup()
|
||||||
|
|
||||||
-- === B. 全局诊断设置 ===
|
-- === 全局诊断设置 ===
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
signs = {
|
signs = {
|
||||||
text = {
|
text = {
|
||||||
|
|
@ -39,21 +53,7 @@ vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- === C. 全局快捷键映射 ===
|
-- === 特定 LSP 配置 (使用 Neovim 0.11+ vim.lsp.config 语法) ===
|
||||||
-- local opts = { noremap = true, silent = true }
|
|
||||||
vim.keymap.set("n", "<leader>h", vim.lsp.buf.hover, opts) -- <space>h显示提示文档
|
|
||||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- gd跳转到定义
|
|
||||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) -- gD跳转到声明(例如c语言中的头文件中的原型、一个变量的extern声明)
|
|
||||||
vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) -- go跳转到变量类型定义的位置(例如一些自定义类型)
|
|
||||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- <space>rn变量重命名
|
|
||||||
vim.keymap.set("n", "<leader>aw", vim.lsp.buf.code_action, opts) -- <space>aw可以在出现警告或错误的地方打开建议的修复方法
|
|
||||||
vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- <space>d浮动窗口显示所在行警告或错误信息
|
|
||||||
vim.keymap.set("n", "<leader>-", vim.diagnostic.goto_prev, opts) -- <space>-跳转到上一处警告或错误的地方
|
|
||||||
vim.keymap.set("n", "<leader>=", vim.diagnostic.goto_next, opts) -- <space>+跳转到下一处警告或错误的地方
|
|
||||||
-- vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- gr跳转到引用了对应变量或函数的位置,改用snacks
|
|
||||||
-- vim.keymap.set({ 'n', 'x' }, '<leader>f', function() vim.lsp.buf.format({ async = true }) end, opts) -- <space>f进行代码格式化
|
|
||||||
|
|
||||||
-- === D. 特定 LSP 配置 (使用 Neovim 0.11+ vim.lsp.config 语法) ===
|
|
||||||
|
|
||||||
-- Python (pylsp) + uv 虚拟环境自适应
|
-- Python (pylsp) + uv 虚拟环境自适应
|
||||||
vim.lsp.config("pylsp", {
|
vim.lsp.config("pylsp", {
|
||||||
|
|
|
||||||
|
|
@ -82,19 +82,21 @@ local function get_plugin_names(arg_lead)
|
||||||
return names
|
return names
|
||||||
end
|
end
|
||||||
|
|
||||||
-- :PackUpdate 命令更新插件,不带参数更新全部
|
-- :PackUpdate 命令更新插件,不带参数更新全部,默认显示审查界面(需按 :w 确认);可以加 ! 强制直接更新
|
||||||
vim.api.nvim_create_user_command("PackUpdate", function(opts)
|
vim.api.nvim_create_user_command("PackUpdate", function(opts)
|
||||||
local targets = #opts.fargs > 0 and opts.fargs or nil
|
local targets = #opts.fargs > 0 and opts.fargs or nil
|
||||||
|
local force = opts.bang -- 如果输入了 PackUpdate! 则 opts.bang 为 true
|
||||||
if targets then
|
if targets then
|
||||||
vim.notify("Checking updates for: " .. table.concat(targets, ", "), vim.log.levels.INFO)
|
vim.notify("Checking updates for: " .. table.concat(targets, ", "), vim.log.levels.INFO)
|
||||||
else
|
else
|
||||||
vim.notify("Checking updates for all plugins...", vim.log.levels.INFO)
|
vim.notify("Checking updates for all plugins...", vim.log.levels.INFO)
|
||||||
end
|
end
|
||||||
vim.pack.update(targets)
|
vim.pack.update(targets, { force = force })
|
||||||
end, {
|
end, {
|
||||||
nargs = "*", -- 支持 0 到多个参数
|
nargs = "*",
|
||||||
complete = get_plugin_names, -- 绑定补全函数,可以改用'packadd'不过补全列表会有一些非vim.pack管理的插件
|
bang = true, -- 声明支持 ! 符号
|
||||||
desc = "Update specified or all plugins",
|
complete = get_plugin_names,
|
||||||
|
desc = "Update plugins (use ! to skip confirmation)",
|
||||||
})
|
})
|
||||||
|
|
||||||
-- :PackStatus 命令查看插件当前状态和版本
|
-- :PackStatus 命令查看插件当前状态和版本
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"plugins": {
|
"plugins": {
|
||||||
"blink.cmp": {
|
"blink.cmp": {
|
||||||
"rev": "456d38d1cd3743926f329204c2340f3e7840aad6",
|
"rev": "c573a15a62bd0bfd4006ee0849b24f5404395500",
|
||||||
"src": "https://github.com/saghen/blink.cmp"
|
"src": "https://github.com/saghen/blink.cmp"
|
||||||
},
|
},
|
||||||
"bufferline.nvim": {
|
"bufferline.nvim": {
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
"src": "https://github.com/windwp/nvim-autopairs"
|
"src": "https://github.com/windwp/nvim-autopairs"
|
||||||
},
|
},
|
||||||
"nvim-lspconfig": {
|
"nvim-lspconfig": {
|
||||||
"rev": "bedca8b426b2fee0ccac596d167d71bbe971253f",
|
"rev": "4b7fbaa239c5db6b36f424a4521ca9f1a401be33",
|
||||||
"src": "https://github.com/neovim/nvim-lspconfig"
|
"src": "https://github.com/neovim/nvim-lspconfig"
|
||||||
},
|
},
|
||||||
"nvim-treesitter": {
|
"nvim-treesitter": {
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
"src": "https://github.com/hedyhli/outline.nvim"
|
"src": "https://github.com/hedyhli/outline.nvim"
|
||||||
},
|
},
|
||||||
"peek.nvim": {
|
"peek.nvim": {
|
||||||
"rev": "803815d18689b8f9e69d433b08ed767d7555128c",
|
"rev": "81365a4dee6f0314d1ab4f65b7f8aee804e741ed",
|
||||||
"src": "https://github.com/cap153/peek.nvim"
|
"src": "https://github.com/cap153/peek.nvim"
|
||||||
},
|
},
|
||||||
"plenary.nvim": {
|
"plenary.nvim": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue