# vimconfig **Repository Path**: danieldyx87/vimconfig ## Basic Information - **Project Name**: vimconfig - **Description**: vimconfig个人分享 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-29 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Neovim 深度定制配置 (基于 LazyVim) 本仓库包含一份基于 [LazyVim](https://www.lazyvim.org/) 构建的高级 **Neovim 配置文件**。它专为全栈开发(TypeScript, Vue, Python, Docker)量身定制,核心理念是**高性能**、**视觉透明化**以及**极致的中文本地化体验**。 ## ✨ 核心特性 ### 1. 🎨 极致 UI 与主题 - **全局透明化**:编辑器背景、浮动窗口、侧边栏、补全菜单等均已配置为透明。 - **主题持久化**:支持 Tokyo Night(默认)、OneDark、Solarized 等,自动保存并恢复主题选择。 - **深度中文本地化**:`Which-Key`、`Lazy.nvim` 界面、文件浏览器菜单、Snacks Picker 通知全中文化。 - **界面美化**:集成 `Snacks.nvim` 提供现代化的 UI 组件(Picker, Notifier, Terminal, Scratch, Explorer, Dashboard)。 ### 2. 🍱 窗口与布局持久化 (Persistence) 本配置解决了 Neovim 窗口管理的痛点,实现了全方位的“记忆”功能: - **分割比例持久化**:通过 `lua/util/window_sizes.lua` 自动记录您手动调整的每一个分割窗口(水平或垂直)的大小,重启后立即恢复。 - **Explorer 宽度**:`Snacks Explorer` 的侧边栏宽度**严格固定为 30**(无论手动拖拽大于或小于 30 都会自动恢复)。 - **调试布局 (DAP)**:调试面板(变量、堆栈、控制台等)的尺寸在调整后自动记录,下次开启调试时**瞬间无跳变恢复**。 - **智能调整**:`wr` 会根据当前窗口分割方向智能提示尺寸调整,并触发自动保存。 ### 3. 🤖 AI 增强与智能补全 (AI & Completion) - **GitHub Copilot (AI 驱动)**: - **Ghost Text 模式**:类似 VSCode 的内联虚文本建议,按 `Tab` 键一键采纳。 - **交互面板**:按 `` 调出 Copilot 建议面板,支持自动刷新并展示多种方案。 - **高性能补全引擎 (Blink.cmp)**: - **极速响应**:基于 Rust 开发,无延迟的补全体验。 - **自定义补全项**:补全列表支持 CSS 颜色代码和 Tailwind 类名的实时颜色预览。 - **多源混合排序**:LSP、代码片段 (LuaSnip)、文件路径、Buffer 单词智能混合排序。 ### 4. 📄 动态模板系统 (File Templates) - **一键触发**:按下 `tn` 调出模板选择器,支持实时预览。 - **丰富预设**:涵盖 Docker (Dockerfile/Compose)、前端 (HTML5/React/Vue)、后端 (FastAPI/Express/CLI) 等。 - **智能变量填充**:自动注入文件名、日期、时间、当前用户、项目名称。 ### 5. ⚡️ 统一运行中心 (Runner) - **异步执行**:自定义后台引擎 (`lua/plugins/runner.lua`),不阻塞编辑器。 - **日志 Tail**:专用 `runnerlog` 窗口,支持错误高亮、URL 识别和自动滚动。 - **多语言支持**: - **C**: 使用 `gcc` 编译后自动运行,输出文件与源文件同名。 - **HTML**: 自动启动 `browser-sync` 并打开浏览器预览。 - **Python**: 自动检测 VirtualEnv 并执行,支持无缓存运行。 - **JavaScript**: 使用 Node.js 直接执行。 - **资源管理**:`rs` 强力终止所有相关后台任务,并自动清理占用端口。 ### 6. 🔖 简单书签系统 (Bookmarks) - **持久化记录**:书签保存至 `/Users/dyx/Documents/bookmarks.json`。 - **视觉反馈**:SignColumn 显示 `🔖` 图标,支持 `[` / `]` + `m` 快速跳转。 - **快速搜索**:`'`(单引号)一键搜索并预览所有书签。 ## 🚀 快速开始 ### 1. 一键安装基础依赖 ```bash # 运行自动安装脚本(只安装基础工具,LSP 由 Mason 管理) cd ~/.config/nvim ./install_dependencies.sh ``` 该脚本会自动安装基础工具(**不含语言服务器**): - **fd** - 快速文件查找 - **ripgrep** - 内容搜索 - **fzf** - 模糊查找 - **lazygit** - Git UI - **tree-sitter** - 语法解析 ### 2. Mason 自动安装语言服务器 首次启动 Neovim 时,Mason 会自动安装所有语言服务器和开发工具: ```vim :Mason -- 查看已安装的工具 :MasonUpdate -- 更新所有工具 ``` 自动安装的工具包括: **LSP 服务器**(智能提示): - **前端**:`ts_ls`, `tailwindcss`, `volar`, `html`, `cssls`, `eslint` - **Docker**:`dockerls`, `docker_compose_language_service` - **Python**:`pyright` - **通用**:`jsonls`, `yamlls`, `marksman`, `lua_ls`, `bashls` **格式化工具**: - `prettierd`, `eslint_d`, `black`, `ruff`, `shfmt`, `stylua`, `yamlfmt` **Lint 工具**: - `hadolint`, `shellcheck`, `typos`, `actionlint` **调试器**: - `debugpy` (Python) ### 3. 验证安装 打开任意支持的文件(如 `Dockerfile`, `.py`, `.ts`),LSP 服务器会自动启动。 **优势**: - ✅ 无需手动安装 npm/pip 全局包 - ✅ 所有工具统一由 Mason 管理 - ✅ 迁移更简单,只需运行安装脚本 --- ## 🖥️ 服务器部署 (Linux / Ubuntu) 将本配置部署到远程服务器(如 Ubuntu 24.04),以下是完整流程: ### 1. 同步配置文件 ```bash # 首次同步(排除 .git、node_modules 等非必要文件) rsync -avz --delete \ --exclude='.git' \ --exclude='node_modules' \ --exclude='.claude' \ --exclude='CLAUDE.md' \ --exclude='GEMINI.md' \ --exclude='FORK_SNACKS.md' \ --exclude='README.md' \ ~/.config/nvim/ 服务器别名:~/.config/nvim/ # 后续增量同步(同上命令即可) ``` ### 2. 安装 Neovim Ubuntu apt 源的 Neovim 版本过旧(v0.9.x),LazyVim 需要 v0.10+,推荐使用官方 AppImage: ```bash curl -Lo /tmp/nvim.appimage https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.appimage chmod +x /tmp/nvim.appimage sudo mv /tmp/nvim.appimage /usr/local/bin/nvim ``` ### 3. 安装基础工具 ```bash # apt 源中有的工具 sudo apt-get install -y fd-find ripgrep fzf # apt 源中没有的工具(从 GitHub Release 安装) # lazygit LAZYGIT_VERSION=$(curl -s https://api.github.com/repos/jesseduffield/lazygit/releases/latest | grep tag_name | head -1 | sed 's/.*: "//;s/",//') curl -Lo /tmp/lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION#v}_Linux_x86_64.tar.gz" sudo tar xzf /tmp/lazygit.tar.gz -C /usr/local/bin lazygit rm /tmp/lazygit.tar.gz # tree-sitter curl -Lo /tmp/tree-sitter.gz https://github.com/tree-sitter/tree-sitter/releases/latest/download/tree-sitter-linux-x64.gz gunzip /tmp/tree-sitter.gz chmod +x /tmp/tree-sitter sudo mv /tmp/tree-sitter /usr/local/bin/tree-sitter ``` ### 4. 设置 vi alias Ubuntu 自带 `/usr/bin/vi`(vim 9.1),需要设置 alias 让 `vi` 指向 neovim: ```bash echo "" >> ~/.bashrc echo "# Neovim" >> ~/.bashrc echo 'alias vi="nvim"' >> ~/.bashrc echo 'alias vim="nvim"' >> ~/.bashrc ``` > **注意**:alias 在交互式 shell 下才生效。SSH 登录后直接输入 `vi` 即可启动 Neovim。 ### 5. fd 命令名兼容 Ubuntu 的 `fd-find` 包安装后命令名为 `fdfind`,而 LazyVim 默认调用 `fd`,需要创建软链接: ```bash sudo ln -sf $(which fdfind) /usr/local/bin/fd ``` ### 6. 同步插件 首次启动 Neovim 时 lazy.nvim 会自动下载所有插件(约 70 个),Mason 会自动安装 LSP 服务器: ```bash # SSH 登录服务器后首次启动(需要几分钟下载插件) vi ``` 也可以通过 headless 模式预下载插件: ```bash vi --headless "+Lazy! sync" +qa ``` > **注意**:headless 模式下 Mason 的 LSP 安装会被中断,这是正常的。LSP 服务器会在首次交互式打开对应文件时自动安装。 ### 前置依赖 服务器上需预先具备以下环境: | 依赖 | 用途 | 检查命令 | |:---|:---|:---| | **Node.js** | LSP 服务器运行时 | `node --version` | | **npm** | LSP 包管理 | `npm --version` | | **Python3** | 部分 LSP/工具依赖 | `python3 --version` | | **pip3** | Python 包安装 | `pip3 --version` | | **Git** | 插件下载 | `git --version` | | **GCC + Make** | tree-sitter 编译 | `gcc --version` | | **curl** | 下载工具 | `curl --version` | --- ## 🌐 语言支持矩阵 (Languages & Tools) 本配置为核心开发语言提供了完整的**LSP (智能提示)**、**Linter (代码检查)**、**Formatter (代码格式化)** 和 **DAP (调试)** 支持。 | 语言/文件 | LSP Server | Linter (检查) | Formatter (格式化) | Debugger (调试) | 备注 | | :--- | :--- | :--- | :--- | :--- | :--- | | **Python** | `pyright` | `ruff` | `isort` + `black` | `debugpy` | 虚拟环境自动检测 | | **TypeScript** | `vtsls` | `eslint` | `prettier` | `js-debug` | 支持 organize imports | | **JavaScript** | `ts_ls` | `eslint` | `prettier` | `js-debug` | | | **Vue** | `vtsls` | `eslint` | `prettier` | `js-debug` | 混合模式支持 | | **HTML** | `html` | `htmlhint` | `prettier` | `browser-sync` | 保存时自动刷新 | | **Django Tpl**| `djlsp` | `djlint` | `djlint` | - | 强力模板语法检查 | | **CSS/SCSS** | `cssls` | `stylelint` | `stylelint` + `prettier` | - | 颜色实时预览 | | **JSON/YAML**| `jsonls`... | - | `prettier` | - | | | **Markdown** | `marksman` | `markdownlint` | `prettier` | - | | | **Docker** | `dockerls` | `hadolint` | `docker_uppercase` | - | 指令强制大写 | | **SQL** | - | - | `sql_formatter` | - | 关键字大写 | | **Lua** | `lua_ls` | - | `stylua` | - | 配置开发专用 | | **Shell** | `bashls` | - | `shfmt` | - | | > **格式化说明**:所有语言默认强制使用 **Tab 缩进 (宽度 4)**,并在保存时自动触发格式化。 ## 🔌 核心功能详细介绍 ### 🐞 智能调试 (DAP) - **核心组件**:`nvim-dap` + `nvim-dap-ui`。 - **持久化布局**:调试面板(控制台、堆栈、变量)的尺寸调整后会自动保存,下次启动时瞬间恢复,无视觉跳变。 - **断点管理**:使用 `persistent-breakpoints.nvim`,断点在关闭编辑器后依然保留。 - **快捷键**: - `dt`: 切换调试界面 - `db`: 切换断点 - `dc`: 开始/继续 - `di/o/u`: 步入/步过/步出 ### 🛠 代码质量与格式化 - **实时诊断**:使用 `nvim-lint` 提供毫秒级的代码检查,配合 `tiny-inline-diagnostic` 在行内显示美观的错误提示。 - **统一格式化**:使用 `conform.nvim` 接管所有格式化请求。 - **Python**: 优先使用 `brew` 安装的 `black` 以获得极致速度。 - **Docker**: 自定义 Perl 脚本将 `FROM`, `RUN` 等指令强制转为大写。 - **SQL**: 强制关键字大写,保持 SQL 风格统一。 - **自动创建配置文件**:打开文件时自动创建缺失的项目配置文件,统一使用非隐藏 `.js` 格式,旧格式自动清理,已有文件会检测内容并补充缺失配置。 - **HTML/Django**: 自动创建 `tailwind.config.js` 和 `prettier.config.js` - **JS/TS/Vue/JSX/TSX**: 自动创建 `eslint.config.js`、`tailwind.config.js` 和 `prettier.config.js` - **CSS/SCSS/LESS**: 自动创建 `stylelint.config.js`(预设 `stylelint-config-standard` + `stylelint-config-recess-order`)和 `prettier.config.js` - 使用 `brew` 安装的 `eslint`,无需 `node_modules` 依赖 ### 📂 增强型文件管理 (Explorer) - **Snacks Explorer**:采用现代化的侧边栏布局。 - **智能操作**: - `x` / `y` / `p`: 支持 Windows 风格的剪切/复制/粘贴。 - **冲突处理**:粘贴时若文件名冲突,自动重命名(如 `file~1.txt`)。 - **宽度固定**:侧边栏宽度**严格固定为 30**,无论手动拖拽大于或小于都会自动恢复。 ### 💾 智能保存 (Smart Save) - **无名 Buffer 自动保存**:编辑 `[No Name]` buffer 时按 `:w` 自动提示输入文件名。 - **另存为功能**:`fs` 弹出窗口输入新文件名,自动保留原路径和文件名。 - **自动创建目录**:保存时若目录不存在会自动创建。 - **无缝切换**:保存后自动切换到新文件,不保留空白 buffer。 - **多种触发方式**: - 命令行:`:w` / `:write` - 快捷键:`` / `w` - 另存为:`fs` --- ## ⌨️ 快捷键大全 (Keymaps) > **Leader Key** 设置为 `` (空格键) ### 📂 文件、查找与历史 (File & Search & History) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `` | **查找文件** (根目录) | `f` | | `fe` | **文件浏览器** (根目录) | `e` | | `fE` | **文件浏览器** (当前目录) | | | `e` | **切换文件浏览器** | | | `H` | **显示/隐藏隐藏文件** | | | `ff` | **查找文件** (根目录) | | | `fF` | **查找文件** (当前目录) | | | `fg` | **查找 Git 文件** | | | `fs` | **另存为** (保留原路径) | | | `fr` | **最近文件** (根目录) | | | `fR` | **最近文件** (当前目录) | | | `fc` | **查找配置文件** | | | `fn` | **新建文件** | | | `fp` | **项目列表** | | | `sg` | **全局搜索 (Grep)** (根目录) | `s` | | `sG` | **全局搜索 (Grep)** (当前目录) | | | `sw` | **搜索单词** (项目) | | | `sW` | **搜索单词** (当前目录) | | | `sr` | **查找并替换** | | | `su` | **撤销历史** | | | `sm` | **标记管理** | | | `ss` | **文档符号** | | | `sS` | **项目符号** | | | `hn` | **通知历史** | `h` | | `hl` | **最后一条通知** | | | `ha` | **所有通知** | | | `hx` | **清除所有通知** | | | `hc` | **命令历史** | | | `hs` | **搜索历史** | | ### 🗂️ 缓冲区与书签 (Buffers & Marks) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `bb` | **切换到上一个 Buffer** | `b` | | `bd` | **关闭当前 Buffer** (不关窗口) | | | `bh` | **上一个 Buffer** | | | `bl` | **下一个 Buffer** | | | `bo` | **关闭其他 Buffer** (跳过固定) | | | `bp` | **切换固定 (Pin)** | | | `bH` | **关闭左侧所有 Buffer** | | | `bL` | **关闭右侧所有 Buffer** | | | `bP` | **清理所有非固定 Buffer** (保护布局) | | | `m` | **切换书签** (添加/移除) | `util.marks` | | `]m` | **下一个书签** | | | `[m` | **上一个书签** | | | `'` (单引号) | **搜索书签** (Picker 视图) | | | `bs` | **搜索书签** (Picker 视图) | | | `bc` | **清空当前文件书签** | | | `bC` | **清空所有书签** (带确认) | | ### 🚀 运行、调试与模板 (Run & Debug & Template) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `rr` | **运行当前文件** (识别 C/HTML/JS/Py) | `r` | | `rp` | **运行项目** (根据配置执行) | | | `rl` | **查看运行日志** (实时 Tail) | | | `rs` | **停止所有后台任务** | | | `rc` | **配置当前文件运行命令** | | | `rC` | **配置项目运行命令** | | | `rb` | **配置文件浏览器关联 URL** | | | `rB` | **配置项目浏览器关联 URL** | | | `ro` | **打开浏览器** (关联预览 URL) | | | `rv` | **选择 Python 虚拟环境** | | | `rV` | **选择 TypeScript 工作区版本** | | | `tn` | **根据模板新建文件** 📄 | `t` | | `dt` | **切换调试面板 (UI)** | `d` | | `dc` | **调试:开始 / 继续** (Continue) | | | `di` | **调试:步入** (Step Into) | | | `do` | **调试:步过** (Step Over) | | | `du` | **调试:步出** (Step Out) | | | `db` | **切换断点** (持久化) | | | `dB` | **设置条件断点** (持久化) | | | `dX` | **清除所有断点** (持久化) | | | `dM` | **调试 Python 方法 (Method)** | | | `dC` | **调试 Python 类 (Class)** | | | `dp` | **切换性能分析器** | | | `dh` | **性能分析高亮** | | | `dd` | **文档诊断列表** | | | `dD` | **项目诊断列表** | | ### 🛠 代码与 LSP (Code & Refactor) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `ca` | **代码操作 (Code Action)** | `c` | | `cA` | **项目操作 (Source Action)** | | | `cr` | **重命名 (Rename)** | | | `cf` | **格式化代码** (强制 Tab) | | | `cl` | **LSP 信息** | | | `cm` | **Mason 插件管理** | | | `cd` | **显示行诊断浮窗** | | | `cn` | **跳转到指定行** (输入行号) | | | `c/` | **切换行注释** | | | `co` | **整理导入** (TS/Vue) | | | `cu` | **删除未使用导入** (TS/Vue) | | | `ci` | **添加缺失导入** (TS/Vue) | | | `cx` | **修复所有诊断** (TS/Vue) | | | `cs` | **显示符号结构 (Outline)** | | | `r` | **智能重构** (Visual 模式选中操作) | `util.refactor` | ### 🧡 Git 集成 (Git Integration) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `gc` | **Git 面板 (Fugitive 悬浮)** | `g` | | `gl` | **Git 日志 (自定义宽布局)** | | | `gs` | **Git 状态 (Picker)** | | | `gg` | **Git 提交图 (Floating)** | | | `gb` | **Git Blame / 行追溯** | | | `gd` | **查看本地差异 (LazyGit)** | | | `gD` | **查看远程差异 (LazyGit)** | | | `gp` | **Git 推送 (先 Fetch)** | | | `gP` | **Git 拉取 (Pull)** | | | `ga` | **Git 暂存当前目录下所有更改** | | | `gC` | **Git 切换分支 (LazyGit)** | | | `gS` | **Git Stash (LazyGit)** | | | `gro` | **浏览器打开远程仓库** | | | `gq` | **关闭 Diffview 视图** | | ### 🍱 窗口、标签页与界面 (Windows & Tabs & UI) | 快捷键 | 描述 | 分组/备注 | | :--- | :--- | :--- | | `w-` | **向下分割窗口** | `w` | | `w\|` | **向右分割窗口** | | | `wd` | **关闭当前窗口** | | | `wh/j/k/l` | **切换窗口** (左/下/上/右) | | | `wH/J/K/L` | **移动窗口位置** (左/下/上/右) | | | `w=` | **均衡所有窗口大小** | | | `wm` | **最大化/恢复窗口 (Zoom)** | | | `wr` | **调整窗口大小** (触发持久化) | | | ``| **新建标签页** | `` | | `d` | **关闭标签页** | | | `n/p` | **下一个/上一个标签页** | | | `o` | **关闭其他标签页** | | | `ut` | **切换透明模式** | `u` | | `ua` | **切换动画** | | | `uz` | **切换禅模式 (Zen)** | | | `uZ` | **切换缩放模式** | | | `ul` | **切换行号显示** | | | `ud` | **切换诊断显示** | | | `uf` | **切换自动格式化** | | | `uT` | **切换标签栏 (Tabline)** | | ### 🤖 AI 与补全 (AI & Completion) | 快捷键 | 描述 | 模式/备注 | | :--- | :--- | :--- | | `Tab` | **采纳 Copilot 建议** / **确认补全** | 插入模式 | | `` / `` | **下/上一个 AI 建议** | 插入模式 | | `` | **忽略当前 AI 建议** | 插入模式 | | `` | **打开 Copilot 建议面板** | 普通模式 | | `gr` | **刷新建议方案** | Copilot 面板 | | `` | **采纳选中的建议** | Copilot 面板 | ### 💻 终端与临时 Buffer (Terminal & Scratch) | 快捷键 | 描述 | 模式/备注 | | :--- | :--- | :--- | | `tf` | **浮窗终端** 💎 | `t` | | `th` | **竖直终端 (上下分割)** | | | `tv` | **水平终端 (左右分割)** | | | `tt` | **标签页终端** | | | `` | **切换/呼出上次使用的终端 (智能)** | 全局 (含终端) | | `` | **退出终端模式返回普通模式** | 终端模式 | > **终端特性**:所有终端均已移除左边距(禁用 signcolumn、foldcolumn、行号),确保内容最大化显示。 | `Ss` | **打开默认临时 Buffer** | `S` | | `Sn` | **新建命名临时 Buffer** | | | `S.` | **切换/找回临时 Buffer** | | | `SS` | **选择/管理所有临时 Buffer** | | ### ⌨️ 通用编辑增强 (General) | 快捷键 | 描述 | 模式/备注 | | :--- | :--- | :--- | | `s` | **Flash 快速跳转** (屏幕搜索) | 普通/可视/操作 | | `gl` | **行诊断切换** (智能浮窗) | 普通模式 | | `` | **竖向块选择** (Mac 兼容) | 普通/可视 | | `` / `` | **向下/向上移动当前行或选区** | 普通/可视 | | `ciq` / `cie` / `cib` | **快速修改 "" / '' / () 内部内容** | 普通模式 | | `` | **跳转到文件末尾并居中** | 普通/插入 | | `` / `` | **跳转到行首 / 行尾** | 普通/操作/可视 | | `q` | **关闭当前 Buffer** (保护侧边栏布局) | 普通模式 | | `` | **切换文件浏览器 (Explorer)** | 普通模式 | | `` / `` | **下一个 / 上一个 Buffer** | 普通模式 | | `k` / `K` | **DevDocs 文档查询** (词/输入) | 普通模式 | --- ## 📝 更新日志 ### 2026-04-13 - 🔧 **优化 Explorer 宽度策略**:侧边栏宽度**严格固定为 30**,无论手动拖拽大于或小于 30 都会自动恢复 - 移除了宽度持久化逻辑(不再保存到文件) - 启动时、窗口调整时、切换窗口时、甚至光标移动时都会强制检查并修正宽度 - 多重保障机制确保宽度始终为 30 ### 2026-04-10 - 🖥️ **新增服务器部署文档**:完整的 Linux/Ubuntu 部署流程,包括配置同步、Neovim AppImage 安装、基础工具安装、vi alias 设置、fd 兼容处理 - 🔧 **修复 nvim-treesitter 跨机器部署**:将版本锁定方式从 `branch = "pinned-xxx"`(本地分支,无法跨机器 clone)改为 `commit = "xxx"`(commit hash,任何机器均可 checkout) - ✅ **部署验证**:配置已成功部署到 sss 服务器(Ubuntu 24.04),70 个插件全部正常加载 ### 2026-02-26 - 🎨 **美化跳转行输入窗口**:`cn` 改用 Neovim 原生浮动窗口,居中圆角边框,显示总行数和当前行号,仅在文件编辑器中生效 - 🔧 **优化 Explorer 宽度策略**:启动时若宽度超过30则自动修正,运行时允许手动拖动和 vsh 自由调整,移除 winfixwidth 锁定 ### 2026-02-24 - ✨ **Stylelint 自动激活**:打开 CSS/SCSS/LESS 文件时自动生成 `stylelint.config.js`(预设 `stylelint-config-standard` + `stylelint-config-recess-order`) - 🔧 **统一配置文件格式**:ESLint、Prettier、Stylelint、Tailwind 全部统一使用非隐藏 `.js` 格式,旧版隐藏文件自动清理 - ✨ **智能配置补充**:已有配置文件会检测内容,自动补充缺失的默认配置项 - 🔧 **Tailwind 兼容扩展**:HTML/Django/React/Vue 等所有类 HTML 文件均触发 Tailwind 配置自动创建 - 🔧 **配置逻辑统一**:将 Tailwind 自动创建从 autocmds.lua 迁移至 eslint-auto.lua 统一管理 ### 2026-02-18 - 🔧 **修复 Prettier 插件配置**:将 `.prettierrc` 转换为 `prettier.config.js`,使用绝对路径配置全局安装的 `prettier-plugin-tailwindcss` - ✨ **启用 TailwindCSS 类名自动排序**:在 HTML/CSS/JS/TS/Vue 文件中自动排序 Tailwind 类名,提升代码可读性 - 🔧 **限制 TailwindCSS LSP 文件类型**:仅在 HTML/CSS/JS/Vue 文件中启动,避免干扰 Markdown 等其他文件 - 🎨 **优化文件搜索预览**:使用真实 buffer 获得完整的 Treesitter 语法高亮,添加 Tab 键在输入框/列表/预览间切换 - 🔧 **禁用预览窗口的 AI 补全**:预览窗口中禁用 Copilot ghost text、blink.cmp 和 tiny ghost 诊断提示 - 🎨 **修复诊断颜色不一致**:完全自定义 tiny-inline-diagnostic 高亮组,确保边缘符号和文字颜色统一 - 🔧 **修复 nvim-treesitter 兼容性问题**:锁定到重构前版本(commit 310f0925),解决与 LazyVim 的 API 不兼容问题 - ✨ **创建独立的 Treesitter 配置文件**:`lua/plugins/treesitter.lua`,使用 commit 锁定版本 - 🔧 **移除 htmlhint 配置**:HTML 文件使用 LSP 提供的语法检查,避免额外 linter 冲突 - ⚠️ **重要提示**:不要运行 `:Lazy update nvim-treesitter`,会破坏兼容性 - 🔧 **修复 treesitter 版本锁定方式**:从 `branch = "pinned-xxx"` 改为 `commit = "xxx"`,解决跨机器部署时远程分支找不到的问题 --- **配置维护者**: Dyx | **基于**: LazyVim | **更新日期**: 2026-04-10