- 分层架构:config/{options,keymaps,lazy} + plugins/
- 保留:blink.cmp, oil.nvim, runner.lua, cmake-tools, diffview, tokyonight
- 新增 UI:bufferline, lualine, noice, nvim-notify, dashboard, dressing
- 新增编辑器:Comment, nvim-surround, vim-illuminate, toggleterm, flash
- 新增视觉:indent-blankline, nvim-ufo, rainbow-delimiters
- 新增 Git:lazygit 集成
- 新增 DAP:persistent-breakpoints, nvim-dap-virtual-text
- 修复:which-key 启用, rustaceanvim 填充, 键位冲突解决
- 语法检查:22/22 文件全部通过 luajit -b
92 lines
6.1 KiB
Lua
92 lines
6.1 KiB
Lua
-- =============================================================================
|
|
-- options.lua — 编辑器基础选项
|
|
-- =============================================================================
|
|
-- 【来源】从原 init.lua 提取,补充了参考配置中缺失的选项。
|
|
-- 【新增项】已用 ✅ 标注,【修改项】已用 🔧 标注。
|
|
|
|
local opt = vim.opt
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 行号
|
|
-- ─────────────────────────────────────────────
|
|
opt.number = true -- 当前行绝对行号
|
|
opt.relativenumber = true -- 相对行号(保留你的设置,方便 5j/5k 跳转)
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 缩进
|
|
-- ─────────────────────────────────────────────
|
|
opt.tabstop = 4 -- Tab 宽度 4(保留你的设置,适配 C/C++)
|
|
opt.shiftwidth = 4 -- 缩进宽度 4
|
|
opt.expandtab = true -- Tab 转空格
|
|
opt.autoindent = true -- ✅ 新增:新行继承上一行缩进
|
|
opt.smartindent = true -- 智能缩进
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 搜索
|
|
-- ─────────────────────────────────────────────
|
|
opt.ignorecase = true -- 搜索忽略大小写
|
|
opt.smartcase = true -- 含大写字母时区分大小写
|
|
opt.hlsearch = true -- ✅ 新增:高亮搜索匹配
|
|
opt.incsearch = true -- ✅ 新增:实时预览搜索
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 显示 & 界面
|
|
-- ─────────────────────────────────────────────
|
|
opt.termguicolors = true -- 真彩色
|
|
opt.cursorline = true -- 高亮当前行
|
|
opt.signcolumn = "yes" -- 始终显示符号列
|
|
opt.wrap = false -- 不自动换行
|
|
opt.scrolloff = 8 -- ✅ 新增:光标距上下边缘保持 8 行
|
|
opt.sidescrolloff = 8 -- ✅ 新增:光标距左右边缘保持 8 列
|
|
opt.showmode = false -- ✅ 新增:隐藏 --INSERT--(状态栏会显示)
|
|
opt.pumheight = 10 -- 补全菜单最大高度
|
|
opt.winborder = "rounded" -- 全局浮动窗口圆角(保留你的设置)
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 分割窗口
|
|
-- ─────────────────────────────────────────────
|
|
opt.splitright = true -- 垂直分割在右侧
|
|
opt.splitbelow = true -- 水平分割在下方
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 文件 & 编码
|
|
-- ─────────────────────────────────────────────
|
|
opt.encoding = "utf-8" -- ✅ 新增:显式指定 UTF-8
|
|
opt.fileencoding = "utf-8" -- ✅ 新增
|
|
opt.swapfile = false -- ✅ 新增:关闭交换文件
|
|
opt.backup = false -- ✅ 新增:关闭备份文件
|
|
opt.undofile = true -- 持久化撤销
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 鼠标 & 剪贴板
|
|
-- ─────────────────────────────────────────────
|
|
opt.mouse = "a" -- ✅ 新增:所有模式启用鼠标
|
|
opt.clipboard = "unnamedplus" -- 系统剪贴板
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 性能
|
|
-- ─────────────────────────────────────────────
|
|
opt.updatetime = 250 -- LSP 悬浮提示触发延迟
|
|
opt.timeoutlen = 300 -- 快捷键序列超时
|
|
opt.wildmenu = true -- 命令行补全增强
|
|
opt.wildmode = "longest:full,full"
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 补全
|
|
-- ─────────────────────────────────────────────
|
|
-- 🔧 修改:completeopt 改为 blink.cmp 推荐的配置
|
|
opt.completeopt = { "menuone", "noselect" }
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 折叠(为 nvim-ufo 准备)
|
|
-- ─────────────────────────────────────────────
|
|
opt.foldlevel = 99
|
|
opt.foldlevelstart = 99 -- ✅ 新增:启动时展开所有折叠
|
|
opt.foldenable = true -- ✅ 新增:启用折叠
|
|
|
|
-- ─────────────────────────────────────────────
|
|
-- 其他
|
|
-- ─────────────────────────────────────────────
|
|
opt.conceallevel = 0 -- ✅ 新增:不隐藏特殊字符
|
|
opt.isfname:append("@-@") -- ✅ 新增:文件名识别 @ 符号
|