【发布时间】:2012-02-24 15:46:48
【问题描述】:
我查看了 Stack Overflow 上的几个问题,了解如何将空格转换为制表符而不找到我需要的内容。似乎有更多关于如何将制表符转换为空格的问题,但我正在尝试做相反的事情。
在Vim 中,我尝试过:retab 和:retab!,但没有运气,但我相信这些实际上是为了从制表符到空格。
我在命令提示符下尝试了expand 和unexpand,但没有任何运气。
这是有问题的文件:
如何使用 Vim 或 shell 将 前导 空格转换为制表符?
【问题讨论】:
-
在@Matt 的现在已删除的评论中,第一个示例 (
sed "s/ +/`echo -e '\t'`/g" < input.py > output.py) 似乎转换了所有空格,而不仅仅是前导空格。在第二个示例 (sed "s/^ +/`echo -e '\t'`/g" < input.py > output.py) 中,它仅将每行的第一个空格替换为一个制表符,并保留其余的空格。 -
对面相关:How to replace tabs with spaces? at Vim SE
-
我没有找到所有/许多文件的答案,所以我自己写了一个:stackoverflow.com/a/44581474/1115187。使用
find、awk和二十一点(不过,太长了,无法将其留在 cmets 中)