2009-10-06 57 views
2

我喜欢使用空格缩进而不是制表符;在一行的开头代替翼片在sedvim很容易:如何使用空格替换intraline选项卡,保持对齐?

s/^I/ /g 

但是,如果有一个线(假装的空间是标签炭的宽度)内的选项卡:

'foo'^I ^I => 'bar', 
'bazzle'^I => 'qux', 

每个选项卡都不对应一定数量的空格以保持对齐。任何人都有一个狡猾的想法,如何在保持正确对齐的同时用空格替换这些制表符?

回答

7

在Vim中:

:retab 

,或者,如果你有空格后的标签:

:retab! 
+0

不要忘记设置expandtab – rampion 2009-10-06 23:33:25

8

在Linux和BSD下,查找expand和unexpand命令行工具。展开将标签转换为空格,而未展开则执行相反的操作。最简单的用法是:

expand filename 

如果你像我一样,使用4个空格的标签,然后:

expand -t 4 filename 

默认情况下,扩大打印到标准输出,并保留原始文件的机智。为了使就地更换,至少有两个选择:

$ cp filename backup 
$ expand -t 4 filename > tempfile 
$ mv tempfile filename 

或者,您也可以在六则启动扩大:

$ vi filename 
:%!expand -t 4 
+0

我想这样做没有使用另一位编辑和“扩展”工作很好。 – fuenfundachtzig 2013-01-17 15:29:24