update dotfiles

This commit is contained in:
2026-07-19 20:39:54 +08:00
parent aef001a855
commit 88c9035c43
18 changed files with 337 additions and 294 deletions
+6 -8
View File
@@ -1,15 +1,13 @@
-- =============================================================================
-- autopairs.lua — 自动括号补全
-- =============================================================================
-- 【保留】你的配置。
-- 【修改】🔧 添加 check_ts = true 让括号补全感知 Treesitter 语法。
return {
{
"windwp/nvim-autopairs",
event = "InsertEnter",
opts = {
check_ts = true, -- 🔧 新增:Treesitter 感知,避免在字符串/注释里自动配对
{
"windwp/nvim-autopairs",
event = "InsertEnter",
opts = {
check_ts = true, -- Treesitter 感知,避免在字符串/注释里自动配对
},
},
},
}
-2
View File
@@ -1,8 +1,6 @@
-- =============================================================================
-- cmake-tools.lua — CMake 工具
-- =============================================================================
-- 【保留】你的完整 cmake-tools 配置。
-- 【无修改】不改动任何已有逻辑。
return {
{
-5
View File
@@ -1,9 +1,6 @@
-- =============================================================================
-- conform.lua — 自动格式化
-- =============================================================================
-- 【保留】你的完整 conform 配置。
-- 【修改】🔧 键位从 <leader>cf 改为 <leader>lf(与 LSP 格式化键统一);
-- ✅ 新增更多语言的 formatter。
return {
{
@@ -11,7 +8,6 @@ return {
event = { "BufWritePre" },
cmd = { "ConformInfo" },
keys = {
-- 🔧 修改:<leader>cf → <leader>lf,与 keymaps.lua 中的 LSP 格式化键一致
{ "<leader>lf", function() require("conform").format({ async = true, lsp_fallback = true }) end, desc = "格式化" },
},
opts = {
@@ -24,7 +20,6 @@ return {
lua = { "stylua" },
c = { "clang-format" },
cpp = { "clang-format" },
-- ✅ 新增:更多语言
python = { "black", "isort" },
javascript = { "prettier" },
typescript = { "prettier" },
+73 -75
View File
@@ -1,91 +1,89 @@
-- =============================================================================
-- git.lua — Git 集成
-- =============================================================================
-- 【保留】你的 gitsigns + diffview 配置完整保留。
-- 【新增】✅ lazygit 集成(参考配置有,你缺的)。
return {
-- gitsigns: 行内 diff 标记
{
"lewis6991/gitsigns.nvim",
event = "BufReadPre",
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
},
on_attach = function(bufnr)
local gs = require("gitsigns")
-- gitsigns: 行内 diff 标记
{
"lewis6991/gitsigns.nvim",
event = "BufReadPre",
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
},
on_attach = function(bufnr)
local gs = require("gitsigns")
-- 导航
vim.keymap.set("n", "]h", function() gs.nav_hunk("next") end, { buffer = bufnr, desc = "下一个修改块" })
vim.keymap.set("n", "[h", function() gs.nav_hunk("prev") end, { buffer = bufnr, desc = "上一个修改块" })
-- 导航
vim.keymap.set("n", "]h", function() gs.nav_hunk("next") end, { buffer = bufnr, desc = "下一个修改块" })
vim.keymap.set("n", "[h", function() gs.nav_hunk("prev") end, { buffer = bufnr, desc = "上一个修改块" })
-- Hunk 操作
vim.keymap.set("n", "<leader>hs", gs.stage_hunk, { buffer = bufnr, desc = "暂存修改块" })
vim.keymap.set("n", "<leader>hr", gs.reset_hunk, { buffer = bufnr, desc = "撤销修改块" })
vim.keymap.set("n", "<leader>hp", gs.preview_hunk, { buffer = bufnr, desc = "预览修改块" })
-- Hunk 操作
vim.keymap.set("n", "<leader>hs", gs.stage_hunk, { buffer = bufnr, desc = "暂存修改块" })
vim.keymap.set("n", "<leader>hr", gs.reset_hunk, { buffer = bufnr, desc = "撤销修改块" })
vim.keymap.set("n", "<leader>hp", gs.preview_hunk, { buffer = bufnr, desc = "预览修改块" })
-- 文件操作
vim.keymap.set("n", "<leader>hS", gs.stage_buffer, { buffer = bufnr, desc = "暂存文件" })
vim.keymap.set("n", "<leader>hR", gs.reset_buffer, { buffer = bufnr, desc = "撤销文件修改" })
-- 文件操作
vim.keymap.set("n", "<leader>hS", gs.stage_buffer, { buffer = bufnr, desc = "暂存文件" })
vim.keymap.set("n", "<leader>hR", gs.reset_buffer, { buffer = bufnr, desc = "撤销文件修改" })
-- Blame
vim.keymap.set("n", "<leader>hb", gs.blame_line, { buffer = bufnr, desc = "查看行 blame" })
vim.keymap.set("n", "<leader>hl", gs.toggle_current_line_blame, { buffer = bufnr, desc = "切换行 blame" })
-- Blame
vim.keymap.set("n", "<leader>hb", gs.blame_line, { buffer = bufnr, desc = "查看行 blame" })
vim.keymap.set("n", "<leader>hl", gs.toggle_current_line_blame, { buffer = bufnr, desc = "切换行 blame" })
-- 其他
vim.keymap.set("n", "<leader>hw", gs.setqflist, { buffer = bufnr, desc = "列出所有 hunk" })
vim.keymap.set("n", "<leader>hd", gs.toggle_word_diff, { buffer = bufnr, desc = "切换行内 diff" })
end,
},
config = function(_, opts)
require("gitsigns").setup(opts)
vim.api.nvim_set_hl(0, "GitSignsAdd", { fg = "#4CAF50" })
vim.api.nvim_set_hl(0, "GitSignsChange", { fg = "#2196F3" })
vim.api.nvim_set_hl(0, "GitSignsDelete", { fg = "#F44336" })
end,
},
-- diffview: Git diff 视图
{
"sindrets/diffview.nvim",
cmd = "DiffviewOpen",
keys = {
{ "<leader>go", "<cmd>DiffviewOpen<cr>", desc = "查看改动" },
{ "<leader>gq", "<cmd>DiffviewClose<cr>", desc = "关闭 diff" },
{ "<leader>gl", "<cmd>DiffviewFileHistory %<cr>", desc = "文件历史" },
},
opts = {
file_panel = {
listing_style = "tree",
tree_options = {
flatten_dirs = true,
folder_statuses = "only_folded",
-- 其他
vim.keymap.set("n", "<leader>hw", gs.setqflist, { buffer = bufnr, desc = "列出所有 hunk" })
vim.keymap.set("n", "<leader>hd", gs.toggle_word_diff, { buffer = bufnr, desc = "切换行内 diff" })
end,
},
},
keymaps = {
view = {
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
file_panel = {
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
},
config = function(_, opts)
require("gitsigns").setup(opts)
vim.api.nvim_set_hl(0, "GitSignsAdd", { fg = "#4CAF50" })
vim.api.nvim_set_hl(0, "GitSignsChange", { fg = "#2196F3" })
vim.api.nvim_set_hl(0, "GitSignsDelete", { fg = "#F44336" })
end,
},
},
-- ✅ 新增:lazygit 集成
{
"kdheepak/lazygit.nvim",
cmd = { "LazyGit", "LazyGitCurrentFile" },
keys = {
{ "<leader>gg", ":LazyGit<CR>", desc = "LazyGit" },
-- diffview: Git diff 视图
{
"sindrets/diffview.nvim",
cmd = "DiffviewOpen",
keys = {
{ "<leader>go", "<cmd>DiffviewOpen<cr>", desc = "查看改动" },
{ "<leader>gq", "<cmd>DiffviewClose<cr>", desc = "关闭 diff" },
{ "<leader>gl", "<cmd>DiffviewFileHistory %<cr>", desc = "文件历史" },
},
opts = {
file_panel = {
listing_style = "tree",
tree_options = {
flatten_dirs = true,
folder_statuses = "only_folded",
},
},
keymaps = {
view = {
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
file_panel = {
{ "n", "<leader>q", "<cmd>DiffviewClose<cr>", { desc = "关闭 diffview" } },
},
},
},
},
-- lazygit: Git TUI
{
"kdheepak/lazygit.nvim",
cmd = { "LazyGit", "LazyGitCurrentFile" },
keys = {
{ "<leader>gg", ":LazyGit<CR>", desc = "LazyGit" },
},
dependencies = { "nvim-lua/plenary.nvim" },
},
dependencies = { "nvim-lua/plenary.nvim" },
},
}
-2
View File
@@ -1,8 +1,6 @@
-- =============================================================================
-- oil.lua — 文件浏览器
-- =============================================================================
-- 【保留】你的完整 oil.nvim 配置。
-- 【无修改】oil 作为默认文件浏览器不变。
return {
{
+1 -3
View File
@@ -1,8 +1,6 @@
-- =============================================================================
-- runner.lua — 统一构建/运行/调试分发器
-- =============================================================================
-- 【保留】你的 runner.lua 配置和 keymap 完整保留。
-- 【无修改】这是你的优秀设计,不需要改动。
return {
{
@@ -13,7 +11,7 @@ return {
{ "<F10>", function() require("dap").step_over() end, desc = "单步跳过" },
{ "<F11>", function() require("dap").step_into() end, desc = "单步进入" },
{ "<F12>", function() require("dap").step_out() end, desc = "单步跳出" },
-- 🔧 修改:断点键位从 <leader>b 改为 <leader>db(避免与 buffer 分组冲突)
-- 断点键位(避免与 buffer 分组冲突)
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "断点" },
{ "<leader>du", function() require("dapui").toggle() end, desc = "调试界面" },
+2 -5
View File
@@ -1,8 +1,6 @@
-- =============================================================================
-- treesitter.lua — 语法高亮
-- treesitter.lua — 语法高亮与折叠
-- =============================================================================
-- 【保留】你的完整 ensure_installed 列表。
-- 【新增】✅ fold 配置让 nvim-ufo 可以使用 treesitter 折叠。
return {
{
@@ -17,8 +15,7 @@ return {
},
highlight = { enable = true },
indent = { enable = true },
-- ✅ 新增:启用 treesitter 折叠(nvim-ufo 依赖
fold = { enable = true },
fold = { enable = true }, -- nvim-ufo 依赖
},
},
}
+1 -4
View File
@@ -1,9 +1,6 @@
-- =============================================================================
-- whichkey.lua — 键位提示
-- =============================================================================
-- 【修复】原配置 enabled = false 直接禁用了,现在启用。
-- 【修改】🔧 enabled 改为 true
-- 🔧 更完善的分组和图标配置。
return {
{
@@ -39,7 +36,7 @@ return {
local wk = require("which-key")
wk.setup(opts)
-- ✅ 新增:键位分组提示
-- 键位分组提示
wk.add({
{ "<leader>e", group = "文件树" },
{ "<leader>f", group = "搜索" },