Vi编辑器:替换除#开头的所有行

时间:2014-01-06 17:19:08

标签: regex vi

所以我需要在每行中编辑一些内容,除了那些以#开头的内容, 因为他们是评论。我需要用+。

替换所有标签

我知道在Vi中我可以翻译这样的东西:

1,$ s / a / A / g,将所有a替换为A

但是如何添加指定所有不以#?

开头的行的范围

2 个答案:

答案 0 :(得分:4)

g(全局)ex命令可以执行您想要的操作:

:g!/^#/s/^I/+/g

一般格式为 g [ ] / RE / CMD ,其中 RE 是描述将命令应用于 CMD CMD的所有行的模式是任何ex命令。可选的会反转RE的意义,将命令应用于所有不匹配的行。

要获得行上的 TAB 字符(上面的^I),您需要点击 ctrl + V 通过 TAB

答案 1 :(得分:0)

似乎可以通过宏技巧实现这一点

qr/^[^#]<Enter>:s/\t/+<Enter>q
3000@r

记录一个宏,该宏将移动到不以#开头的下一行。用制表符替换该行上的所有空格。然后只需重复该宏数百次(或任何数量足够大的文件)