Files
dotfiles/nvim/lua/config/options.lua
T
2026-07-19 20:39:54 +08:00

89 lines
5.3 KiB
Lua

-- =============================================================================
-- options.lua — 编辑器基础选项
-- =============================================================================
local opt = vim.opt
-- ─────────────────────────────────────────────
-- 行号
-- ─────────────────────────────────────────────
opt.number = true -- 当前行绝对行号
opt.relativenumber = true -- 相对行号
-- ─────────────────────────────────────────────
-- 缩进
-- ─────────────────────────────────────────────
opt.tabstop = 4 -- Tab 宽度
opt.shiftwidth = 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 -- 隐藏模式提示(状态栏会显示)
opt.pumheight = 10 -- 补全菜单最大高度
opt.winborder = "rounded" -- 全局浮动窗口圆角
-- ─────────────────────────────────────────────
-- 分割窗口
-- ─────────────────────────────────────────────
opt.splitright = true -- 垂直分割在右侧
opt.splitbelow = true -- 水平分割在下方
-- ─────────────────────────────────────────────
-- 文件 & 编码
-- ─────────────────────────────────────────────
opt.encoding = "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"
-- ─────────────────────────────────────────────
-- 补全
-- ─────────────────────────────────────────────
opt.completeopt = { "menuone", "noselect" } -- blink.cmp 推荐配置
-- ─────────────────────────────────────────────
-- 折叠(为 nvim-ufo 准备)
-- ─────────────────────────────────────────────
opt.foldlevel = 99
opt.foldlevelstart = 99 -- 启动时展开所有折叠
opt.foldenable = true -- 启用折叠
-- ─────────────────────────────────────────────
-- 其他
-- ─────────────────────────────────────────────
opt.conceallevel = 0 -- 不隐藏特殊字符
opt.isfname:append("@-@") -- 文件名识别 @ 符号