两个设置层次
跳转到“两个设置层次”NvChad 基于 Neovim。按 Tab 或自动缩进时使用编辑器选项;保存时如果调用 StyLua,又会按照 StyLua 规则重新排版 Lua 文件。只改其中一个,可能出现“输入是两格,保存又变四格”。
| 层次 | 影响 | 常用设置 |
|---|---|---|
| Neovim 缓冲区 | 编辑、缩进命令与 Tab 显示 | expandtab、shiftwidth、tabstop、softtabstop |
| StyLua | 格式化后的 Lua 文本 | indent_type、indent_width |
原截图的 indent_width = 4 与标题要求两空格不一致,下面统一使用 2。
项目中的格式化配置
跳转到“项目中的格式化配置”在项目使用的 .stylua.toml 中设置:
column_width = 120indent_type = "Spaces"indent_width = 2StyLua 会查找配置文件;也可用 --config-path 明确指定,排除误读其他目录配置的可能。它只负责支持的 Lua/Luau 文本,不是所有语言的统一缩进开关。StyLua 官方说明
编辑器选项
跳转到“编辑器选项”在当前 NvChad 版本加载的用户选项模块中设置;不要假设所有版本都使用同一个文件位置。
vim.opt.expandtab = truevim.opt.shiftwidth = 2vim.opt.tabstop = 2vim.opt.softtabstop = 2expandtab 让输入缩进使用空格,shiftwidth 决定缩进操作的宽度,tabstop 决定已有 Tab 的显示宽度;修改显示宽度不等于替换文件中已有 Tab。Neovim 选项文档
验证与排查
跳转到“验证与排查”- 新建 Lua 文件,输入两层嵌套结构,观察编辑时的缩进。
- 保存并触发格式化,确认仍为两空格。
- 在 Neovim 中运行
:verbose setlocal shiftwidth? tabstop? expandtab?,查看当前值及最后设置位置。 - 若仅某种语言异常,检查文件类型插件、EditorConfig、项目配置与格式化器选择,避免同时启用互相冲突的规则。
原始记录
跳转到“原始记录”本笔记由 CSDN 原始记录 的文字与图片重新整理;正文中的代码、适用条件与说明已按本次审读补充。