
如图,只要换行就默认缩进,怎么修改设置让它不缩进?找了一圈没有找到解决办法,求解
晚上好🌙🌙🌙
本答案参考通义千问
你提到的问题是关于 Shader 编写时,花括号({})在换行后自动缩进,特别是右花括号(即 })首行缩进的问题。这种现象通常出现在 Visual Studio Code (VSCode) 或其他代码编辑器中,尤其是当你使用了某些格式化插件(如 Prettier、C# Extension、Shader Graph 等)。
你遇到的情况是:
{,它会自动换行并缩进。} 时,它也会换行,并且首行缩进(即 } 不在与左花括号对齐的同一行,而是单独一行并缩进)。这可能是因为:
如果你使用的是 Prettier 或其他格式化工具,请修改其配置文件(.prettierrc 或 settings.json),禁用自动缩进。
.prettierrc 配置文件{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "auto"
}
重点:
"bracketSpacing": true是控制花括号是否保留空格的关键项。如果设置为false,可能会导致}与前一行对齐。
{
"bracketSpacing": false
}
注意: 这个设置会影响所有语言,不是专门针对 Shader。
如果你是在 Unity 中编写 Shader,Unity 的内置 Shader 编辑器可能有自己的格式化逻辑。
} 首行缩进。在 VSCode 中,你可以通过以下方式调整格式化行为:
Ctrl + ,)format on typeEditor: Format On Type 设置为 false(或根据需要调整)在 settings.json 中添加以下内容:
{
"editor.formatOnType": false,
"editor.defaultFormatter": "ms-vscode.csharp", // 如果你使用 C# 插件
"shader-format.enable": true,
"shader-format.braceStyle": "allman" // 或 "k&r" / "stroustrup"
}
重点:
"shader-format.braceStyle"控制花括号的风格,选择allman会将}放在单独一行并缩进;选择k&r则让}与前一行对齐。
如果你无法更改设置,可以手动修复:
} 后,按 Backspace 删除多余的空格和缩进。Ctrl + Z 撤销自动缩进。原始格式(自动缩进):
void MyFunction()
{
// code
}
修改后(不缩进):
void MyFunction() {
// code
}
| 步骤 | 内容 | |------|------| | 1 | 检查并修改格式化插件设置(如 Prettier) | | 2 | 关闭 Unity 自动格式化功能 | | 3 | 在 VSCode 中调整格式化设置 | | 4 | 手动删除多余缩进 |
重点:
不要盲目依赖自动格式化工具,特别是在编写 Shader 时,保持代码风格的一致性非常重要。
如果你能提供你使用的编辑器名称和插件列表,我可以给出更具体的配置建议。