update dotfiles
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
-- =============================================================================
|
||||
-- keymaps.lua — 基础键位映射
|
||||
-- =============================================================================
|
||||
|
||||
local keymap = vim.keymap.set
|
||||
|
||||
-- Leader 键
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- 编辑器操作
|
||||
keymap("n", "<leader>w", "<cmd>w<cr>", { desc = "保存" })
|
||||
|
||||
-- 关闭当前 buffer / 窗口(VSCode 风格)
|
||||
-- - quickfix 窗口:cclose(cmake-tools 输出窗口)
|
||||
-- - 普通文件:统计文件 buffer 数量
|
||||
-- - 只剩 1 个文件 buffer → 退出 nvim(不留下 "no name" 空白)
|
||||
-- - 多个文件 buffer → Bdelete 关闭当前标签
|
||||
-- - 其他特殊 buffer(终端等):直接关闭窗口
|
||||
keymap("n", "<leader>q", function()
|
||||
local bt = vim.bo.buftype
|
||||
local ft = vim.bo.filetype
|
||||
|
||||
if bt == "quickfix" then
|
||||
vim.cmd("cclose")
|
||||
return
|
||||
end
|
||||
|
||||
if bt ~= "" then
|
||||
vim.cmd("close")
|
||||
return
|
||||
end
|
||||
|
||||
-- 统计文件 buffer 数量(排除 nvim-tree/dashboard/quickfix/terminal 等)
|
||||
local file_bufs = 0
|
||||
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
||||
if vim.api.nvim_buf_is_loaded(bufnr) then
|
||||
local b = vim.bo[bufnr]
|
||||
if b.buftype == "" and b.filetype ~= "" then
|
||||
file_bufs = file_bufs + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if file_bufs <= 1 then
|
||||
vim.cmd("qa")
|
||||
else
|
||||
vim.cmd("Bdelete")
|
||||
end
|
||||
end, { desc = "关闭当前 buffer/窗口" })
|
||||
|
||||
keymap("n", "<leader>/", "<cmd>noh<cr>", { desc = "清除搜索高亮" })
|
||||
|
||||
-- 窗口导航
|
||||
keymap("n", "<C-h>", "<C-w>h", { desc = "跳到左边窗口" })
|
||||
keymap("n", "<C-j>", "<C-w>j", { desc = "跳到下面窗口" })
|
||||
keymap("n", "<C-k>", "<C-w>k", { desc = "跳到上面窗口" })
|
||||
keymap("n", "<C-l>", "<C-w>l", { desc = "跳到右边窗口" })
|
||||
|
||||
-- 窗口操作
|
||||
keymap("n", "<leader>sv", "<cmd>vsplit<cr>", { desc = "垂直分屏" })
|
||||
keymap("n", "<leader>sh", "<cmd>split<cr>", { desc = "水平分屏" })
|
||||
keymap("n", "<leader>sc", "<cmd>close<cr>", { desc = "关闭窗口" })
|
||||
|
||||
-- Buffer 导航
|
||||
keymap("n", "<S-h>", "<cmd>bnext<cr>", { desc = "下一个 buffer" })
|
||||
keymap("n", "<S-l>", "<cmd>bprevious<cr>", { desc = "上一个 buffer" })
|
||||
|
||||
-- 文件树
|
||||
keymap("n", "<leader>e", "<cmd>NvimTreeToggle<cr>", { desc = "文件树" })
|
||||
|
||||
-- 终端
|
||||
keymap("n", "<c-`>", "<cmd>ToggleTerm<cr>", { desc = "终端" })
|
||||
keymap("t", "<c-`>", "<cmd>ToggleTerm<cr>", { desc = "终端" })
|
||||
@@ -0,0 +1,61 @@
|
||||
-- =============================================================================
|
||||
-- lazy.lua — 插件管理器初始化
|
||||
-- =============================================================================
|
||||
-- 【来源】从原 init.lua 提取。
|
||||
-- 【修改】🔧 install.colorscheme 改为 tokyonight(你的主题);
|
||||
-- 🔧 添加 ui.border = "rounded" 统一圆角;
|
||||
-- 🔧 添加 performance.rtp 禁用内置插件提升启动速度。
|
||||
-- 【修复】🔧 defaults.lazy = true(保留你的原设置),但 UI 核心插件不懒加载。
|
||||
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.uv.fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git", "clone", "--filter=blob:none",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
"--branch=stable", lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
{ import = "plugins" },
|
||||
},
|
||||
|
||||
-- 🔧 修复:保留你的 defaults.lazy = true
|
||||
defaults = {
|
||||
lazy = true,
|
||||
},
|
||||
|
||||
-- 🔧 修改:安装时尝试加载你的主题
|
||||
install = {
|
||||
colorscheme = { "tokyonight", "habamax" },
|
||||
},
|
||||
|
||||
-- 🔧 修改:关闭自动检查更新(你的原设置),但保留手动 :Lazy check
|
||||
checker = {
|
||||
enabled = false,
|
||||
notify = false,
|
||||
},
|
||||
|
||||
-- 🔧 修改:统一 UI 圆角边框
|
||||
ui = {
|
||||
border = "rounded",
|
||||
},
|
||||
|
||||
-- ✅ 新增:禁用内置插件提升启动速度
|
||||
performance = {
|
||||
rtp = {
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
"matchit",
|
||||
"matchparen",
|
||||
"netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,91 @@
|
||||
-- =============================================================================
|
||||
-- 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("@-@") -- ✅ 新增:文件名识别 @ 符号
|
||||
Reference in New Issue
Block a user