visual-studio-code - 如何在保存时将制表符转换为空格?
问题描述
我想在保存文件时将制表符更改为空格。我以为设置中有一个选项或至少有一个扩展名,但我看不到它。
我看过许多其他要删除的帖子trim.trailingWhitespace
,但这不是我想要的。按 Tab 键时,我还使用了从制表符到空格的转换。但这又不是我的问题。
我正在寻找的是保存文件并自动将所有选项卡更改为空格,就像 Qt Creator 所做的那样。
解决方案
这将取决于语言。您需要安装/设置特定于语言的格式化程序,然后启用该"editor.formatOnSave"
设置,这将在保存文件时应用格式化程序规则。
这个答案适用于 Python 和 JavaScript,因为这是我通常使用的。
对于 JavaScript,我使用Prettier扩展。
(它有其他语言的插件,但我主要将它用于 JS。)
然后将这些添加到您的settings.json:
// Set the default setting
"editor.formatOnSave": false,
// Then toggle depending on the language
"[javascript]": {
"editor.formatOnSave": true
},
默认情况下,Prettier 已经提供了一些默认的格式化规则。但是您可以指定自己的配置文件来指定您自己的(或特定于项目的)格式规则集。
.
├── ...
├── .prettierrc.js
├── test.js
...
└── <<other files>>
在.prettierrc.js 中:
// prettier.config.js or .prettierrc.js
module.exports = {
useTabs: false,
tabWidth: 4
};
Prettier 配置指定不使用制表符并使用 4 个空格的缩进级别。现在,通过该设置,当您保存文件时,它会自动将制表符更改为空格(我理解这是您想要的)。还有其他格式选项。
您会知道该扩展程序正在工作,因为它在状态栏中显示“更漂亮”:
对于 Python,VS Code 目前支持 3 个格式化提供程序):
- “autopep8”
- “耶普夫”
- “黑色的”。
我使用“autopep8”。
autopep8
在您的环境中安装。然后在 VS Code 中,确保选择具有autopep8
. 然后将其添加到您的 settings.json 中:
// Set the default setting
"editor.formatOnSave": false,
"[python]": {
"editor.formatOnSave": true
},
"python.formatting.provider": "autopep8",
"python.formatting.autopep8Args": [
// "--ignore=W191, E101, E111" // Uncomment to disable fixing indentation
],
在这里,autopep8格式化代码以遵循PEP8 样式指南,该指南已经建议使用空格代替制表符。所以所有需要做的就是启用它。
您可能还对与空格相关的 VS Code 设置感兴趣(这样一开始就不会将制表符放入文件中):
"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 4,
推荐阅读
- python - 使用 python-docx 检测损坏的文档文件
- git - 为什么 gitlab 存储比使用 git clone 下载的要大得多?
- python - 获取熊猫数据框两列之间的对序列的第一个和最后一个值
- postgresql - PostGIS ST_Difference 函数在结果中返回错误的几何图形
- powershell - Powershell 脚本根据其结束域在多台服务器上执行不同的操作
- javascript - 如何合并两个数组值并覆盖替换空值
- sql - 如何为连接表创建索引
- c# - 在 FullCalendar 应用程序上显示模式对话框
- javascript - useCallback 不继承父属性
- java - 来自命令行的数组中字符串的长度