如何在现有文件中将制表符转换为空格,反之亦然

How can I convert tabs to spaces and vice versa in an existing file

除了在 4 个空格上进行查找替换并转换为制表符(版本 0.10.2)之外,我一辈子都不知道该怎么做。我想不出 editor/IDE 没有特定功能来执行此操作。 VSCode吗?

由于修复了:https://github.com/Microsoft/vscode/issues/1228,编辑器开箱即用地支持它。只需前往:

  1. F1,
  2. indentationToSpacesindentationToTabs(取决于您的需要)
  3. Enter.
  1. Select 替换:CTRL-H
  2. 在查找框中输入水平制表符:按住 ATL 并在小键盘上键入 009。
  3. 在替换框中输入 space(或更多 spaces):按 space bar
  4. 按 Enter 键开始用 Space(s) 替换制表符。

另一种方法是单击页脚上的当前缩进 (Tab/Spaces:n),这将打开您的缩进选项,您可以在其中 select 您想要执行的操作。

如果您尝试将非前导制表符转换为空格(反之亦然),您可以使用正则表达式搜索和替换。

  1. 按 CTRL + H
  2. 单击 .* 按钮使用正则表达式进行搜索。
  3. 要搜索选项卡,请在“查找”框中输入 [\t]
  4. 在替换框中输入空格并执行替换。

正则表达式模式的搜索框:

为了完善这些答案,我将添加将每个制表符转换为 n 个空格的想法。

  1. 突出显示制表符
  2. 使用 CTRL + F2 select 所有出现
  3. SPACEn次

这是最简单的方法(不仅仅是转换前导制表符)。

请注意,这不会将连续的制表符转换为 k 空格。它转换每个选项卡。对于连续的标签,请参阅我对 的评论。您将需要 VS Code 查找并使用正则表达式替换来完成此操作。

按 F1,然后在文本框中键入将缩进转换为空格或任何您想要的缩进

在 Visual Studio 上,Ctrl+K+F 成功了。

快进到 2020/2021 年,一些扩展将为我们提供这种转换。我刚好需要该功能(因此我找到了这篇文章),并搜索我发现的扩展:

  • geocode.spacecadet - 提供 TAB->SPC 和 SPC->TAB,但自 2017 年以来未更新,安装 1.3k,评论 3.5
  • takumii.tabspace - TAB->SPC,自 2020 年起,1500 次安装,无评论
  • pygc.spacetab - SPC->TAB,来自...等等,就在昨天! (或今天取决于您的 TZ),2 次安装,无评论