假设我有几行:
$repeat_on = $_REQUEST['repeat_on'];
$opt_days = $_REQUEST['opt_day'];
$opt_days = explode(",", $opt_days);
...等等。
假设我使用可视化模式选择所有行:如何替换从 =
到行尾的所有内容,使其看起来像:
$repeat_on = NULL;
$opt_days = NULL;
$opt_days = NULL;
最佳答案
选择 block 后,使用此替代品:
s/=.*$/= NULL;
替换正则表达式通过将 =
和行尾之间的任何内容(包括 =
)替换为 = NULL;
来更改每一行.
命令的第一部分是与要替换的内容匹配的正则表达式:=.*$
。
=
是字面意思。- 点
.
表示任何字符。 - 因此
.*
表示:0 个或多个任意字符。 - 这由
$
终止行尾,但实际上这里没有必要:也可以在没有$
的情况下尝试。
因此正则表达式将匹配每行中第一个 =
之后的区域,并用替换项替换该区域,即 = NULL;
。我们需要在替换中包含 =
以将其添加回来,因为它是要替换的匹配项的一部分。
当您选择了一个 block ,然后点击 :
以输入命令时,命令行将自动为视觉选择范围添加前缀,如下所示:
:'<,'>
继续输入上面的命令,你的命令行将是:
:'<,'>s/=.*$/= NULL;
这会将替换应用到选定的可视 block 。
如果您需要在一行中进行多次替换,则需要添加 g
标志:
:'<,'>s/=.*$/= NULL;/g
关于vim - 在 VIM 中替换从 = 到行尾的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845307/