110 lines
3.0 KiB
Lua
110 lines
3.0 KiB
Lua
-- =============================================================================
|
|
-- 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 = {
|
|
{ "<C-`>", "<cmd>ToggleTerm<cr>", mode = { "n", "t" }, desc = "终端" },
|
|
{ "<leader>tg", "<cmd>ToggleTerm direction=float<cr>", desc = "浮动终端" },
|
|
{ "<leader>th", "<cmd>ToggleTerm direction=horizontal<cr>", desc = "水平终端" },
|
|
{ "<leader>tv", "<cmd>ToggleTerm direction=vertical<cr>", 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,
|
|
},
|
|
} |