如何使用vim将字符添加到非空行

时间:2014-07-01 14:21:08

标签: vim

我有一个文本文档,其空行和行以大写月份开头。

我想添加" - "到每个非空白行的开头。

试过这个:

1,$s/^[A-Z]/- / 

它删除了当月的第一个字母(例如" - une"它应该是" - June") 我该如何添加这封信?或者是否有更好的"为大型文档执行此操作的方法,我需要保持空白线不变。

2 个答案:

答案 0 :(得分:4)

试试这个,它应该给你想要的东西

%s/^[A-Z]/- &/

或使用:g

:g/^[A-Z]/s/^/- /

答案 1 :(得分:2)

您有一个答案可以重新添加匹配的文本,或者避免在替换期间完全匹配文本。另一种方法是将匹配指定为零宽度,或设置匹配的结尾,以便文本匹配但不替换:

%s/^[A-Z]\@=/- /

%s/^\ze[A-Z]/- /

请参阅:help zero-width:help /\@=:help /\ze