Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换VIM中从=到行尾的所有内容_Vim_Replace_Substitution - Fatal编程技术网

替换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