跳转到内容
新建笔记

NvChad 与 StyLua:设置两空格缩进

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 = 120
indent_type = "Spaces"
indent_width = 2

StyLua 会查找配置文件;也可用 --config-path 明确指定,排除误读其他目录配置的可能。它只负责支持的 Lua/Luau 文本,不是所有语言的统一缩进开关。StyLua 官方说明

在当前 NvChad 版本加载的用户选项模块中设置;不要假设所有版本都使用同一个文件位置。

vim.opt.expandtab = true
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.softtabstop = 2

expandtab 让输入缩进使用空格,shiftwidth 决定缩进操作的宽度,tabstop 决定已有 Tab 的显示宽度;修改显示宽度不等于替换文件中已有 Tab。Neovim 选项文档

  1. 新建 Lua 文件,输入两层嵌套结构,观察编辑时的缩进。
  2. 保存并触发格式化,确认仍为两空格。
  3. 在 Neovim 中运行 :verbose setlocal shiftwidth? tabstop? expandtab?,查看当前值及最后设置位置。
  4. 若仅某种语言异常,检查文件类型插件、EditorConfig、项目配置与格式化器选择,避免同时启用互相冲突的规则。

本笔记由 CSDN 原始记录 的文字与图片重新整理;正文中的代码、适用条件与说明已按本次审读补充。