我喜欢使用空格来缩进而不是标签;在sed
或vim
:
s/^I/ /g
但是如果一行中有选项卡(假设空格是选项卡字符的宽度):
'foo'^I ^I => 'bar',
'bazzle'^I => 'qux',
每个选项卡都不对应于维持对齐的设定数量的空格。任何人都有一个狡猾的想法,如何在保持正确对齐的同时用空格替换这些制表符?
答案 0 :(得分:12)
在Linux和BSD下,查找expand和unexpand命令行工具。 expand会将制表符转换为空格,而unexpand会执行相反的操作。最简单的用法是:
expand filename
如果你像我一样,使用4个空格作为标签,那么:
expand -t 4 filename
默认情况下,将打印件展开到标准输出并保留原始文件。要进行就地替换,您至少有两个选择:
$ cp filename backup
$ expand -t 4 filename > tempfile
$ mv tempfile filename
或者,您可以在vi:
中调用expand$ vi filename
:%!expand -t 4
答案 1 :(得分:7)
在Vim:
:retab
或者,如果你在空格后有标签:
:retab!