fix: 清理配置死代码与修正 foldmethod 作用域
- options.lua: 删除 MiniDiffSign 高亮链接(mini.diff 已移除,死代码) - options.lua: 删除关于 ftplugin 的误导注释(目录不存在) - autocmds.lua: foldmethod 从 vim.o 全局改为 vim.wo window-local, 事件从 BufEnter+once 改为 FileType,避免污染 help/man/quickfix 窗口 - keymaps.lua: 4 处 vim.keymap.set 统一为 map 别名 - git.lua: codediff view 键位 hs/hu/hr/cs 统一为 ghs/ghu/ghr/gs, 与 gitsigns 的 gh* 命名空间一致
This commit is contained in:
parent
00b13a18f5
commit
6b1cb2d794
@ -74,20 +74,21 @@ vim.api.nvim_create_autocmd("FileType", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- 4. 延迟设置 Treesitter 折叠
|
-- 4. 按文件类型设置 Treesitter 折叠
|
||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- 使用 treesitter 的 foldexpr 进行语法感知的代码折叠。
|
-- 使用 treesitter 的 foldexpr 进行语法感知的代码折叠。
|
||||||
-- 延迟到 BufEnter 时设置(而非启动时),避免在 startup 阶段加载 treesitter 模块。
|
-- 在 FileType 事件中按 buffer 设置 window-local 选项:
|
||||||
|
-- - 仅对有 treesitter parser 的文件类型启用 expr 折叠
|
||||||
|
-- - window-local(vim.wo)而非全局(vim.o),避免污染 help/man/quickfix 等窗口
|
||||||
|
-- - 每个 buffer 独立设置,分屏与新窗口正确继承
|
||||||
--
|
--
|
||||||
-- once = true 表示此 autocmd 只触发一次,首次 BufEnter 后自动销毁。
|
|
||||||
-- foldmethod = "expr" 表示使用表达式(foldexpr)计算折叠范围。
|
-- foldmethod = "expr" 表示使用表达式(foldexpr)计算折叠范围。
|
||||||
-- foldexpr = "v:lua.vim.treesitter.foldexpr()" 是 Neovim 0.10+ 的内置函数,
|
-- foldexpr = "v:lua.vim.treesitter.foldexpr()" 是 Neovim 0.10+ 的内置函数,
|
||||||
-- 基于 treesitter 语法树计算折叠边界。
|
-- 基于 treesitter 语法树计算折叠边界。无 parser 时返回 0(不折叠),不会报错。
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
group = group,
|
group = group,
|
||||||
once = true,
|
|
||||||
callback = function()
|
callback = function()
|
||||||
vim.o.foldmethod = "expr"
|
vim.wo.foldmethod = "expr"
|
||||||
vim.o.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|||||||
@ -67,25 +67,25 @@ map("v", "$", "g_")
|
|||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- Neovim 0.12+ 内置了 undotree 插件(nvim.undotree)。
|
-- Neovim 0.12+ 内置了 undotree 插件(nvim.undotree)。
|
||||||
-- 这里通过 packadd 按需加载并打开。
|
-- 这里通过 packadd 按需加载并打开。
|
||||||
vim.keymap.set("n", "<leader>ud", function()
|
map("n", "<leader>ud", function()
|
||||||
vim.cmd.packadd("nvim.undotree")
|
vim.cmd.packadd("nvim.undotree")
|
||||||
require("undotree").open()
|
require("undotree").open()
|
||||||
end, { desc = "打开内置撤销树" })
|
end, { desc = "打开内置撤销树" })
|
||||||
|
|
||||||
-- <leader>ds — 诊断位置列表
|
-- <leader>ds — 诊断位置列表
|
||||||
vim.keymap.set("n", "<leader>ds", function()
|
map("n", "<leader>ds", function()
|
||||||
vim.diagnostic.setloclist()
|
vim.diagnostic.setloclist()
|
||||||
end, { desc = "诊断位置列表" })
|
end, { desc = "诊断位置列表" })
|
||||||
|
|
||||||
-- <leader>uf - 切换全局自动格式化
|
-- <leader>uf - 切换全局自动格式化
|
||||||
vim.keymap.set("n", "<leader>uf", function()
|
map("n", "<leader>uf", function()
|
||||||
vim.g.autoformat = vim.g.autoformat == false
|
vim.g.autoformat = vim.g.autoformat == false
|
||||||
local state = vim.g.autoformat and "开启" or "关闭"
|
local state = vim.g.autoformat and "开启" or "关闭"
|
||||||
vim.notify("全局自动格式化: " .. state, vim.log.levels.INFO)
|
vim.notify("全局自动格式化: " .. state, vim.log.levels.INFO)
|
||||||
end, { desc = "切换全局自动格式化" })
|
end, { desc = "切换全局自动格式化" })
|
||||||
|
|
||||||
-- <leader>uF - 切换当前 Buffer 自动格式化
|
-- <leader>uF - 切换当前 Buffer 自动格式化
|
||||||
vim.keymap.set("n", "<leader>uF", function()
|
map("n", "<leader>uF", function()
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
vim.b[bufnr].autoformat = vim.b[bufnr].autoformat == false
|
vim.b[bufnr].autoformat = vim.b[bufnr].autoformat == false
|
||||||
local state = vim.b[bufnr].autoformat and "开启" or "关闭"
|
local state = vim.b[bufnr].autoformat and "开启" or "关闭"
|
||||||
|
|||||||
@ -29,7 +29,6 @@ vim.opt.autoread = true -- 当文件被外部修改时自动重新读取
|
|||||||
-- 2. 缩进与格式化
|
-- 2. 缩进与格式化
|
||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- 使用 4 空格缩进,适用于大多数语言。
|
-- 使用 4 空格缩进,适用于大多数语言。
|
||||||
-- 特定语言的缩进设置(如 JS/TS 的 2 空格)应在 ftplugin 中覆盖。
|
|
||||||
vim.opt.tabstop = 4 -- Tab 键显示的宽度(字符数)
|
vim.opt.tabstop = 4 -- Tab 键显示的宽度(字符数)
|
||||||
vim.opt.softtabstop = 4 -- 插入模式下 Tab/BS 的行为宽度
|
vim.opt.softtabstop = 4 -- 插入模式下 Tab/BS 的行为宽度
|
||||||
vim.opt.shiftwidth = 4 -- 自动缩进和 >/< 操作的宽度
|
vim.opt.shiftwidth = 4 -- 自动缩进和 >/< 操作的宽度
|
||||||
@ -111,18 +110,9 @@ vim.opt.signcolumn = "yes"
|
|||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- 10. 高亮组链接(fallback)
|
-- 10. 折叠设置
|
||||||
-- ---------------------------------------------------------------------------
|
|
||||||
-- colorscheme 中通常已定义 MiniDiffSign 的具体颜色。
|
|
||||||
-- 如果用户临时切换到其他 colorscheme,此处 link 作为兜底。
|
|
||||||
vim.api.nvim_set_hl(0, "MiniDiffSignAdd", { link = "DiffAdd" })
|
|
||||||
vim.api.nvim_set_hl(0, "MiniDiffSignChange", { link = "DiffChange" })
|
|
||||||
vim.api.nvim_set_hl(0, "MiniDiffSignDelete", { link = "DiffDelete" })
|
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------------
|
|
||||||
-- 11. 折叠设置
|
|
||||||
-- ---------------------------------------------------------------------------
|
-- ---------------------------------------------------------------------------
|
||||||
-- foldlevel = 99 表示默认展开所有折叠。
|
-- foldlevel = 99 表示默认展开所有折叠。
|
||||||
-- 实际的 foldmethod 和 foldexpr 在 autocmds.lua 中通过 BufEnter 延迟设置,
|
-- 实际的 foldmethod 和 foldexpr 在 autocmds.lua 中按 buffer 延迟设置,
|
||||||
-- 避免启动时加载 treesitter 模块。
|
-- 避免启动时加载 treesitter 模块。
|
||||||
vim.opt.foldlevel = 99
|
vim.opt.foldlevel = 99
|
||||||
|
|||||||
@ -137,10 +137,10 @@ local function load_codediff()
|
|||||||
diff_get = "do",
|
diff_get = "do",
|
||||||
diff_put = "dp",
|
diff_put = "dp",
|
||||||
open_in_prev_tab = "gf",
|
open_in_prev_tab = "gf",
|
||||||
toggle_stage = "<leader>cs",
|
toggle_stage = "<leader>gs",
|
||||||
stage_hunk = "<leader>hs",
|
stage_hunk = "<leader>ghs",
|
||||||
unstage_hunk = "<leader>hu",
|
unstage_hunk = "<leader>ghu",
|
||||||
discard_hunk = "<leader>hr",
|
discard_hunk = "<leader>ghr",
|
||||||
hunk_textobject = "ih",
|
hunk_textobject = "ih",
|
||||||
show_help = "g?",
|
show_help = "g?",
|
||||||
align_move = "gm",
|
align_move = "gm",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user