在第一个单词之前添加字符

时间:2014-10-02 15:20:05

标签: regex vim

我想添加一个减号" - "在编辑VIM的第一个字的前面。这些行包含缩进空格。不得触及压痕。 E.g

按原样

  list point 1
      sub list point 2
  and so on... 

我想要

  - list point 1
      - sub list point 2
  - and so on... 

我可以找到第一个单词,但我很难以正确的方式替换它。

^\s*\w

在Vim

/^\s*\w

但在替换中我总是删除完整的找到的部分....

:s/^\s*\w/- \w/

导致

- ist point 1
- ub list point 2
- nd so on...     

4 个答案:

答案 0 :(得分:4)

使用替换为匹配字符串的&

:%s/\w/- &

答案 1 :(得分:2)

我迟到了,但是:

:%norm! I- <CR>

另一个:s

:%s/^\s*/&- /

答案 2 :(得分:1)

falsetrue答案的替代方法:您可以捕获第一个字符并将其与前导-一起打印出来:

%s/\(\w\)/- \1/

答案 3 :(得分:1)

:普通cmd也可能有所帮助:

:%norm! wi-

请注意,在-之后会有空格。