假设我有几行:
$repeat_on = $_REQUEST['repeat_on'];
$opt_days = $_REQUEST['opt_day'];
$opt_days = explode(",", $opt_days);
......等等。
假设我使用可视模式选择所有行:如何将=
中的所有内容替换为行的末尾,如下所示:
$repeat_on = NULL;
$opt_days = NULL;
$opt_days = NULL;
答案 0 :(得分:7)
选择块后,请使用此替换:
s/=.*$/= NULL;
替换正则表达式通过将=
和行尾(包括=
)与= NULL;
替换为=.*$
之间的任何内容来更改每一行。
命令的第一部分是正则表达式匹配要替换的内容:=
。
.
字面意思。.*
表示任何字符。$
表示: 0或更多任何字符。$
行尾终止了这一点,但实际上这里没有必要:在没有=
的情况下尝试。因此,正则表达式将匹配每行中第一个= NULL;
之后的区域,并将该区域替换为替换,即=
。我们需要在替换中包含:
以将其添加回来,因为它是要替换的匹配项的一部分。
如果选择了一个块,然后按:'<,'>
输入命令,命令行将自动为视觉选择范围添加前缀,如下所示:
:'<,'>s/=.*$/= NULL;
继续输入上面的命令,命令行将是:
g
将替换应用于所选视觉块。
如果您需要在一行中进行多次替换,则需要添加:'<,'>s/=.*$/= NULL;/g
标记:
{{1}}
答案 1 :(得分:0)
一些替代方案:
在第一行/字符上执行... Wl<C-v>jjCNULL;<Esc>bi<Space><Esc>
在第一行/字符上执行... qqWllCNULL;<esc>+q2@q
在第一行做... 3:no<S-tab> WllCNULL;<Enter>
或者,如果您在视觉上选择了线条,则将3号线从头开始。