如何通过一次操作转换工作区中所有文件的空格和制表符之间的缩进?

问题描述 投票:0回答:1

如何通过一次操作对工作区中的所有文件使用 VS Code 的 将缩进转换为空格将缩进转换为制表符 命令,而不是对每个文件使用该命令?

visual-studio-code indentation
1个回答
1
投票

如果您使用的是 UNIX 系统,则可以使用以下修改版本通过命令行执行此操作:

git ls-files | command grep -E '*.ts$' | awk '{print "expand --tabs=4 --first-only", $0, " > /tmp/e; mv /tmp/e ", $0}' | sh
,其中列出了当前工作目录的 git 存储库中跟踪的所有文件,筛选带有
.ts 的文件
扩展名,然后使用
awk
expand
将制表符的前导缩进替换为指定数量的空格。

要从空格转到制表符,请使用

unexpand
命令。

如果您不使用 git 存储库,则可以将

git ls-files
替换为
find -type f
git ls-files
的优点是它不会触及任何未跟踪的内容)。

只需将 grep 过滤器中的正则表达式更改为您需要的任何内容即可。

该命令用制表符替换前导的 4 个空格组。只需将

--tabs
参数更改为
unexpand
命令,并使用缩进的空格数即可。


如果您想要 VS Code 方式来执行此操作,您可以使用 rioV8 的扩展:Command on All Files (我与此扩展没有任何关系)(使用

editor.action.indentationToTabs
editor.action.indentationToSpaces 
命令)。我从这个问答中发现了这一点:如何在 VS Code 中跨多个文件执行命令?.

另请参阅https://stackoverflow.com/a/76386322/11107541

© www.soinside.com 2019 - 2024. All rights reserved.