Vim找到并替换'='后的所有内容,直到行结束($)

Sco*_*les 3 regex vim

我有一串字符串(10到20):

title = models.CharField(max_length=250)
...
field20 = models.DateField()
Run Code Online (Sandbox Code Playgroud)

如何使用Vim的查找和替换来删除从等号到行尾的所有内容,因此文本变为:

title
...
field20
Run Code Online (Sandbox Code Playgroud)

我熟悉visual select find和replace(:s/\%Vfoo/bar/g),所以我想做(:s/\%V <=直到$> // g),但这是我不确定如何在Vim中找到的:

 = until $
Run Code Online (Sandbox Code Playgroud)

我查看了vimregex wiki,并尝试了以下操作但没有成功:

:s/\%V = (.*?)$//g
Run Code Online (Sandbox Code Playgroud)

hek*_*mgl 10

你在找这个:

:%s/=.*/
Run Code Online (Sandbox Code Playgroud)

它是一样的

:%s/=.*//
Run Code Online (Sandbox Code Playgroud)

但结尾/可以省略.你不需要gbtw,因为行尾的模式只能匹配一次.

如果您还想在=使用前删除空格:

:%s/[[:blank:]]*=.*/
Run Code Online (Sandbox Code Playgroud)

注意:如果您认为[[:blank:]]难以输入,则可以\s改为使用.两者都代表空间或标签.

  • 另一方面,`[[:blank:]]`更明确,更难以打字.;) (2认同)