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

Posted

技术标签:

【中文标题】如何在现有文件中将制表符转换为空格,反之亦然【英文标题】:How can I convert tabs to spaces and vice versa in an existing file 【发布时间】:2016-03-02 16:14:41 【问题描述】:

除了在 4 个空格上进行查找替换并转换为制表符(版本 0.10.2)之外,我无法弄清楚如何在我的一生中做到这一点。我想不出没有特定功能的编辑器/IDE。 VSCode 有吗?

【问题讨论】:

另见:***.com/questions/36814642/… 【参考方案1】:

自修复:https://github.com/Microsoft/vscode/issues/1228 以来,编辑器开箱即用地支持它。简单地去:

    F1, indentationToSpacesindentationToTabs(取决于您的需要) Enter

【讨论】:

这只会转换前导空格/制表符。 对于第 1 步,您也可以执行 ctrl+shift+p 请参阅下面的答案以转换非前导空格/制表符。 ***.com/a/51735845/263139 没有一个答案将每个选项卡转换为正确且可变数量的空格。例如,输入此文本然后转换: 第 1 行:“A\tB”。第 2 行:“ABC\tD”。 你为什么不再读一遍这个问题,然后解释一下我的评论有什么问题?【参考方案2】:
    选择替换:CTRL-H 在查找框中输入水平制表符:按住 ATL 并在键盘上键入 009。 在替换框中输入一个(或多个)空格:按空格键 按 Enter 开始用空格替换制表符。

【讨论】:

这对我不起作用,但我在下面发布了一个关于使用正则表达式对非前导空格/制表符执行此操作的答案。 这会将每个制表符转换为相同数量的空格,这是不正确的。【参考方案3】:

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

【讨论】:

这只会转换缩进中的制表符,而不是所有制表符。【参考方案4】:

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

    按 CTRL + H 点击.*按钮使用正则表达式进行搜索。 要搜索标签,请在“查找”框中输入 [\t]。 在替换框中输入空格并执行替换。

正则模式下的搜索框:

【讨论】:

这会将每个制表符转换为相同数量的空格,这是不正确的。 不起作用,添加更多空间,一切都搞砸了 如果您想将制表符分隔的数据格式转换为逗号分隔,这非常有用。 :) 这个答案很灵活。如果您想将连续制表符转换为固定数量的空格并且不熟悉正则表达式,请将[\t]更改为[\t]+ @Emmanual 这个答案很灵活,如果你想以编程方式改变,你只需要更新正则表达式模式【参考方案5】:

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

    突出显示制表符 使用CTRL + F2 选择所有匹配项 按SPACE n 次

这是最简单的方法(不仅仅是转换前导标签)。

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

在 Visual Studio 上,Ctrl+K+F 帮了我大忙。

【讨论】:

这是 Visual Studio 中的“格式选择”快捷方式,根据您的格式设置,可能会影响制表符/空格。这也与 OP 关于 VS Code 的问题不太相关。【参考方案8】:

快进到 2020/2021 年,有一些扩展可以让我们实现这种转换。我只是需要这个功能(因此我找到了这篇文章),并搜索了我找到的扩展:

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

【讨论】:

以上是关于如何在现有文件中将制表符转换为空格,反之亦然的主要内容,如果未能解决你的问题,请参考以下文章

在 Notepad++ 中将制表符转换为空格

将多个文件中的空格转换为制表符 Sublime Text 2

如何在 BASH 中将制表符分隔值 (TSV) 文件转换为逗号分隔值 (CSV) 文件?

在vim中用空格替换制表符

如何将制表符转换为空格并在android studio中保存时自动格式化

Visual Studio Code - 将空格转换为制表符