IDE编辑文件总是自动清除末尾空格的问题

Posted 神神的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDE编辑文件总是自动清除末尾空格的问题相关的知识,希望对你有一定的参考价值。

修改一个多年前的 Vue 项目,编辑一个 markdown 文件,结果遇到个很神奇的问题:

每次保存总是自动清除每一行末尾的空格,导致 md 文件的语句末尾双空格换行语法失效,一番折腾无果,让人很崩溃。。。

一开始以为是 markdown 插件的问题,不过又觉得不可能有这么低级的错误,停用后果然问题依旧,又测试其他文件格式,连 txt 文件居然也会自动清理,无语了。

排除插件问题,那可能是编辑器的配置问题?设置面板中搜索相关配置,trailing space 取消后问题依然存在。

然后开一个新项目,发现就没有这个问题,其他地方实在找不到相关设置了。

想想还有点儿关系的可能的也就是 eslint ,webpack,文件监测之类的了先检查下相关配置文件。

结果发现了一个 .editorconfig 文件,想起之前好像是为了统一缩进格式放了这么个文件。

查看配置参数,果然有个 trim_trailing_whitespace = true

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

就是 trim_trailing_whitespace 这个全局配置参数导致的,他会覆盖 IDE 自身的设置参数,
具体语法规则可以参考官网说明:

What is EditorConfig
https://editorconfig.org/

很多IDE都支持该配置文件,以前也没遇到这种问题,没有太注意配置参数的副作用还是挺坑的。

改了下配置:

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

这样就好了,或者全局设置为 false 或者不设置使用IDE配置,然后给指定后缀开启。

如果需要配置多个后缀,就这样写:

[*.{txt,md}]
trim_trailing_whitespace = false

以上是关于IDE编辑文件总是自动清除末尾空格的问题的主要内容,如果未能解决你的问题,请参考以下文章

IDE编辑文件总是自动清除末尾空格的问题

IDE编辑文件总是自动清除末尾空格的问题

IDE编辑文件总是自动清除末尾空格的问题

pythoninput()会不会自动去除末尾空格

如何从片段外部清除/重置地图?

UITextField在开始编辑时具有“清除”按钮大小