gpt4 book ai didi

vim - 在 VIM 中替换从 = 到行尾的所有内容

转载 作者:行者123 更新时间:2023-12-04 19:32:36 26 4
gpt4 key购买 nike

假设我有几行:

$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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com