-- ============================================================================= -- editor.lua — 编辑器增强插件 -- ============================================================================= return { -- Comment.nvim: 注释快捷键 gcc / gc { "numToStr/Comment.nvim", event = { "BufReadPre", "BufNewFile" }, opts = {}, }, -- nvim-surround: 环绕操作 ysiw" / cs"' / ds" { "kylechui/nvim-surround", event = { "BufReadPre", "BufNewFile" }, version = "*", opts = {}, }, -- vim-illuminate: 高亮光标下相同单词 { "RRethy/vim-illuminate", event = { "BufReadPre", "BufNewFile" }, opts = { delay = 200, large_file_cutoff = 2000, }, config = function(_, opts) require("illuminate").configure(opts) end, }, -- toggleterm.nvim: 集成终端 { "akinsho/toggleterm.nvim", version = "*", keys = { { "", "ToggleTerm", mode = { "n", "t" }, desc = "终端" }, { "tg", "ToggleTerm direction=float", desc = "浮动终端" }, { "th", "ToggleTerm direction=horizontal", desc = "水平终端" }, { "tv", "ToggleTerm direction=vertical", desc = "垂直终端" }, }, opts = { size = function(term) if term.direction == "horizontal" then return vim.o.lines * 0.3 elseif term.direction == "vertical" then return vim.o.columns * 0.4 end end, direction = "horizontal", float_opts = { border = "curved", winblend = 0 }, shell = vim.o.shell, }, }, -- flash.nvim: 快速跳转 { "folke/flash.nvim", event = "VeryLazy", opts = {}, }, -- indent-blankline: 缩进参考线 { "lukas-reineke/indent-blankline.nvim", event = { "BufReadPost", "BufNewFile" }, main = "ibl", opts = { indent = { char = "│" }, scope = { enabled = true }, }, }, -- nvim-ufo: 代码折叠 { "kevinhwang91/nvim-ufo", dependencies = { "kevinhwang91/promise-async" }, event = { "BufReadPost", "BufNewFile" }, config = function() vim.o.foldmethod = "expr" vim.o.foldexpr = "v:lua.vim.treesitter.foldexpr()" vim.o.foldlevel = 99 vim.o.foldlevelstart = 99 require('ufo').setup({ provider_selector = function(bufnr, filetype, buftype) return { "treesitter", "indent" } end, }) vim.keymap.set('n', 'zM', require('ufo').closeAllFolds, { desc = "关闭所有折叠" }) vim.keymap.set('n', 'zR', require('ufo').openAllFolds, { desc = "展开所有折叠" }) end, }, -- rainbow-delimiters: 彩虹括号 { "HiPhish/rainbow-delimiters.nvim", dependencies = { "nvim-treesitter/nvim-treesitter" }, config = function() local rainbow_delimiters = require("rainbow-delimiters") vim.g.rainbow_delimiters = { strategy = { [''] = rainbow_delimiters.strategy.global }, query = { [''] = 'rainbow-delimiters' }, } end, }, }