如何使用正则表达式替换为 Vim

How to replace with Vim using regex

我正在尝试完善我的 HAML 代码,因此我需要将每个 :word => text 更改为 word: text

更多示例:

  1. :align => text 应该是 align: text
  2. :style => 'display: block;font-family: Arial' 应该是 style: 'display: block;font-family: Arial'

我试着用 Vim 正则表达式来做到这一点,这里是我用来替换的内容:

:%s /:\w*\s=>/:\w/g

但不幸的是,这并没有像我上面描述的那样。

试试这个:

:%s/:\(\w\+\)\s*=>\(\s*\)/:/g

或者,使用非常神奇的模式来使用更少的反斜杠:

:%s/\v:(\w+)\s*\=\>(\s*)/:/g

</code> 保留了 <code>=> 右侧的空格,这是一种半心半意的尝试,目的是让更改后的内容保持一致。