替换VIM中从=到行尾的所有内容
假设我有几行,比如:替换VIM中从=到行尾的所有内容,vim,replace,substitution,Vim,Replace,Substitution,假设我有几行,比如: $repeat_on = $_REQUEST['repeat_on']; $opt_days = $_REQUEST['opt_day']; $opt_days = explode(",", $opt_days); 。。。等等 假设我使用视觉模式选择所有行:如何替换从=到行尾的所有内容,使其看起来像: $repeat_on = NULL; $opt_days = NULL; $opt_days = NULL; 选定块后,使用此替换: s/=.*
$repeat_on = $_REQUEST['repeat_on'];
$opt_days = $_REQUEST['opt_day'];
$opt_days = explode(",", $opt_days);
。。。等等
假设我使用视觉模式选择所有行:如何替换从=
到行尾的所有内容,使其看起来像:
$repeat_on = NULL;
$opt_days = NULL;
$opt_days = NULL;
选定块后,使用此替换:
s/=.*$/= NULL;
替换正则表达式通过将=
和行尾之间的任何内容(包括=
)替换为=NULL来更改每一行代码>
命令的第一部分是与要替换的内容相匹配的正则表达式:=.*$
=
按字面意思理解
- 点
表示任何字符
- 所以
*
表示:任何字符的0个或更多
- 对于行尾,这是由
$
终止的,但这里实际上不需要这样做:在不使用$
的情况下也可以尝试
因此正则表达式将匹配每行中第一个=
之后的区域,并用替换项替换该区域,即=NULL代码>。我们需要在替换中包含=
以将其添加回,因为它是要替换的匹配的一部分
当您选择了一个块,并点击:
输入命令时,命令行将自动以可视选择的范围作为前缀,如下所示:
:'<,'>
一些备选方案:
视觉块(快速)
在第一行/字符上执行<代码>WljjCNULL;bi
宏(更快)
在第一行/字符上执行<代码>qqWllCNULL+q2@q
:正常(最快)
在第一行做<代码>3:无WllCNULL代码>
或者,如果您已经直观地选择了这些行,请将3从开头去掉。摄影谢谢。你能解释一下实际的reg模式及其工作原理吗?
:'<,'>s/=.*$/= NULL;
:'<,'>s/=.*$/= NULL;/g